diff options
author | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-07-30 15:56:09 -0400 |
---|---|---|
committer | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-07-31 11:09:25 -0400 |
commit | 5a6a6de6f1a26a1897e4917a0df613e25a24eb70 (patch) | |
tree | 59a968f27b4b603aacc9d5e7b51fb598aeec5321 /common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java | |
parent | b6dc38501f3b746426b42d9de4cc883d894149e8 (diff) |
Containerization feature of SO
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18
Issue-ID: SO-670
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
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.java | 126 |
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; - - } - -} |