aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java')
-rw-r--r--common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java126
1 files changed, 0 insertions, 126 deletions
diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java b/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java
deleted file mode 100644
index 9540409e16..0000000000
--- a/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.openpojo.rules;
-
-import static org.hamcrest.CoreMatchers.anyOf;
-import static org.hamcrest.CoreMatchers.anything;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.Id;
-
-import org.hamcrest.Matcher;
-
-import com.openpojo.business.annotation.BusinessKey;
-import com.openpojo.random.RandomFactory;
-import com.openpojo.reflection.PojoClass;
-import com.openpojo.reflection.PojoField;
-import com.openpojo.validation.affirm.Affirm;
-import com.openpojo.validation.test.Tester;
-import com.openpojo.validation.utils.ValidationHelper;
-
-public class EqualsAndHashCodeTester implements Tester {
-
-
- private final Matcher m;
- private boolean onlyDeclaredMethods = false;
- public EqualsAndHashCodeTester() {
- m = anything();
- }
-
- public EqualsAndHashCodeTester(Matcher m) {
- this.m = m;
- }
-
- public EqualsAndHashCodeTester onlyDeclaredMethods() {
- this.onlyDeclaredMethods = true;
- return this;
- }
- @Override
- public void run(PojoClass pojoClass) {
- Class<?> clazz = pojoClass.getClazz();
- if (anyOf(m).matches(clazz)) {
- final Object classInstanceOne = ValidationHelper.getBasicInstance(pojoClass);
- final Object classInstanceTwo = ValidationHelper.getBasicInstance(pojoClass);
- if (onlyDeclaredMethods) {
- Method[] methods = classInstanceOne.getClass().getDeclaredMethods();
- boolean hasEquals = false;
- boolean hasHashcode = false;
- for (Method method : methods) {
- if (method.getName().equals("equals")) {
- hasEquals = true;
- } else if (method.getName().equals("hashCode")) {
- hasHashcode = true;
- }
- }
-
- if (!(hasEquals && hasHashcode)) {
- return;
- }
- }
- Set<PojoField> identityFields = hasIdOrBusinessKey(pojoClass);
- List<PojoField> otherFields = new ArrayList<>(pojoClass.getPojoFields());
- otherFields.removeAll(identityFields);
-
- for (PojoField field : identityFields) {
- final Object value = RandomFactory.getRandomValue(field);
-
- field.invokeSetter(classInstanceOne, value);
- field.invokeSetter(classInstanceTwo, value);
- }
-
- for (PojoField field : otherFields) {
- if (field.hasSetter()) {
- final Object valueOne = RandomFactory.getRandomValue(field);
- final Object valueTwo = RandomFactory.getRandomValue(field);
-
- field.invokeSetter(classInstanceOne, valueOne);
- field.invokeSetter(classInstanceTwo, valueTwo);
- }
- }
-
- Affirm.affirmTrue("Equals test failed for [" + classInstanceOne.getClass().getName() + "]", classInstanceOne.equals(classInstanceTwo));
-
- Affirm.affirmTrue("Equals test failed for [" + classInstanceOne.getClass().getName() + "]", classInstanceOne.equals(
- classInstanceOne));
-
- Affirm.affirmTrue("HashCode test failed for [" + classInstanceOne.getClass().getName() + "]", classInstanceOne.hashCode() == classInstanceTwo.hashCode());
-
- Affirm.affirmFalse("Expected false for comparison of two unlike objects", classInstanceOne.equals("test"));
- }
- }
-
-
- private Set<PojoField> hasIdOrBusinessKey(PojoClass pojoClass) {
- final Set<PojoField> fields = new HashSet<>();
-
- fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(BusinessKey.class));
- fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(Id.class));
-
- return fields;
-
- }
-
-}