From 54aad7deb7a02ecca4bc7ed4d7913ccd59eb3bf9 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Wed, 6 Mar 2019 14:25:02 +0200 Subject: Fix cyclic CategoryParameterOption::hashCode Issue-ID: VID-430 Change-Id: Ib49b71726fe508f1ec9bfe8c60836af1c5ca786b Signed-off-by: Ittay Stern --- .../vid/model/CategoryParameterOptionTest.java | 186 ++------------------- .../org/onap/vid/model/CategoryParameterTest.java | 186 ++++----------------- .../java/org/onap/vid/testUtils/TestUtils.java | 48 ++++-- 3 files changed, 77 insertions(+), 343 deletions(-) (limited to 'vid-app-common/src/test/java') diff --git a/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterOptionTest.java b/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterOptionTest.java index 5fe392751..a3a14a2dd 100644 --- a/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterOptionTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterOptionTest.java @@ -20,190 +20,34 @@ package org.onap.vid.model; -import java.io.Serializable; -import java.util.Date; -import java.util.Set; +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanEqualsExcluding; +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanHashCodeExcluding; +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static org.hamcrest.MatcherAssert.assertThat; -import org.junit.Assert; +import org.apache.commons.lang3.ArrayUtils; import org.junit.Test; +import org.onap.portalsdk.core.domain.support.DomainVo; +import org.onap.vid.testUtils.TestUtils; public class CategoryParameterOptionTest { - private CategoryParameterOption createTestSubject() { - return new CategoryParameterOption(); - } - - @Test - public void testGetId() throws Exception { - CategoryParameterOption testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getId(); - } - - @Test - public void testSetId() throws Exception { - CategoryParameterOption testSubject; - Long id = null; - - // default test - testSubject = createTestSubject(); - testSubject.setId(id); - } - - @Test - public void testGetAppId() throws Exception { - CategoryParameterOption testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getAppId(); - } - - @Test - public void testSetAppId() throws Exception { - CategoryParameterOption testSubject; - String appId = ""; - - // default test - testSubject = createTestSubject(); - testSubject.setAppId(appId); - } - - @Test - public void testGetName() throws Exception { - CategoryParameterOption testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getName(); - } - - @Test - public void testSetName() throws Exception { - CategoryParameterOption testSubject; - String name = ""; - - // default test - testSubject = createTestSubject(); - testSubject.setName(name); - } - - @Test - public void testGetCategoryParameter() throws Exception { - CategoryParameterOption testSubject; - CategoryParameter result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getCategoryParameter(); - } - - @Test - public void testSetCategoryParameter() throws Exception { - CategoryParameterOption testSubject; - CategoryParameter categoryParameter = null; - - // default test - testSubject = createTestSubject(); - testSubject.setCategoryParameter(categoryParameter); - } - - @Test - public void testGetCreated() throws Exception { - CategoryParameterOption testSubject; - Date result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getCreated(); - } - - @Test - public void testGetModified() throws Exception { - CategoryParameterOption testSubject; - Date result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getModified(); - } - - @Test - public void testGetCreatedId() throws Exception { - CategoryParameterOption testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getCreatedId(); - } + final private String[] excludedProperties = TestUtils.allPropertiesOf(DomainVo.class); @Test - public void testGetModifiedId() throws Exception { - CategoryParameterOption testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getModifiedId(); - } - - @Test - public void testGetAuditUserId() throws Exception { - CategoryParameterOption testSubject; - Serializable result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getAuditUserId(); + public void shouldHaveValidGettersAndSetters() { + assertThat(CategoryParameterOption.class, hasValidGettersAndSetters()); } @Test - public void testGetRowNum() throws Exception { - CategoryParameterOption testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getRowNum(); + public void shouldHaveValidBeanHashCode() { + assertThat(CategoryParameterOption.class, + hasValidBeanHashCodeExcluding(ArrayUtils.addAll(new String[]{"categoryParameter"}, excludedProperties))); } @Test - public void testGetAuditTrail() throws Exception { - CategoryParameterOption testSubject; - Set result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getAuditTrail(); - } - - @Test - public void testEquals() throws Exception { - CategoryParameterOption testSubject; - Object o = null; - boolean result; - - // test 1 - testSubject = createTestSubject(); - o = null; - result = testSubject.equals(o); - Assert.assertEquals(false, result); - } - - @Test - public void testHashCode() throws Exception { - CategoryParameterOption testSubject; - int result; - - // default test - testSubject = createTestSubject(); - result = testSubject.hashCode(); + public void shouldHaveValidBeanEquals() { + assertThat(CategoryParameterOption.class, hasValidBeanEqualsExcluding(excludedProperties)); } } diff --git a/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterTest.java b/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterTest.java index dc18c3065..c515a34d4 100644 --- a/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/model/CategoryParameterTest.java @@ -20,186 +20,64 @@ package org.onap.vid.model; -import java.io.Serializable; -import java.util.Date; +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanEqualsExcluding; +import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanHashCodeExcluding; +import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSettersExcluding; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.onap.vid.testUtils.TestUtils.allPropertiesOf; + +import com.google.common.collect.ImmutableSet; import java.util.Set; - +import org.apache.commons.lang3.ArrayUtils; import org.junit.Test; +import org.onap.portalsdk.core.domain.support.DomainVo; public class CategoryParameterTest { - private CategoryParameter createTestSubject() { - return new CategoryParameter(); - } - - @Test - public void testGetFamily() throws Exception { - CategoryParameter testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getFamily(); - } - - @Test - public void testSetFamily() throws Exception { - CategoryParameter testSubject; - String family = ""; - - // default test - testSubject = createTestSubject(); - testSubject.setFamily(family); - } - - @Test - public void testGetId() throws Exception { - CategoryParameter testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getId(); - } - - @Test - public void testGetCreated() throws Exception { - CategoryParameter testSubject; - Date result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getCreated(); - } - - @Test - public void testGetModified() throws Exception { - CategoryParameter testSubject; - Date result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getModified(); - } - - @Test - public void testGetCreatedId() throws Exception { - CategoryParameter testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getCreatedId(); - } - - @Test - public void testGetModifiedId() throws Exception { - CategoryParameter testSubject; - Long result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getModifiedId(); - } - - @Test - public void testGetName() throws Exception { - CategoryParameter testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getName(); - } - @Test - public void testSetName() throws Exception { - CategoryParameter testSubject; - String name = ""; + final private String[] excludedProperties = allPropertiesOf(DomainVo.class); - // default test - testSubject = createTestSubject(); - testSubject.setName(name); + private ImmutableSet optionsWithRefTo(CategoryParameter categoryParameter) { + return ImmutableSet.of( + new CategoryParameterOption("appId1", "name1", categoryParameter), + new CategoryParameterOption("appId2", "name2", categoryParameter) + ); } @Test - public void testGetAuditUserId() throws Exception { - CategoryParameter testSubject; - Serializable result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getAuditUserId(); + public void shouldHaveValidGettersAndSetters() { + assertThat(CategoryParameter.class, hasValidGettersAndSettersExcluding("options")); } @Test - public void testGetRowNum() throws Exception { - CategoryParameter testSubject; - Long result; + public void testSetAndGetOptions() { + CategoryParameter testSubject = new CategoryParameter(); - // default test - testSubject = createTestSubject(); - result = testSubject.getRowNum(); - } - - @Test - public void testGetAuditTrail() throws Exception { - CategoryParameter testSubject; - Set result; + Set options = optionsWithRefTo(testSubject); - // default test - testSubject = createTestSubject(); - result = testSubject.getAuditTrail(); + testSubject.setOptions(options); + assertThat(testSubject.getOptions(), containsInAnyOrder(optionsWithRefTo(testSubject).toArray())); } @Test - public void testGetOptions() throws Exception { - CategoryParameter testSubject; - Set result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getOptions(); + public void shouldHaveValidBeanHashCodeWithCycleReference() { + assertThat(CategoryParameter.class, + hasValidBeanHashCodeExcluding(ArrayUtils.addAll(new String[]{"options"}, excludedProperties))); } @Test - public void testSetOptions() throws Exception { - CategoryParameter testSubject; - Set options = null; - - // default test - testSubject = createTestSubject(); + public void hashCodeShouldNotExplodeWhenCycleReference() { + CategoryParameter testSubject = new CategoryParameter(); + Set options = optionsWithRefTo(testSubject); testSubject.setOptions(options); - } - @Test - public void testAddOption() throws Exception { - CategoryParameter testSubject; - CategoryParameterOption option = null; - boolean result; - - // default test - testSubject = createTestSubject(); - result = testSubject.addOption(option); + testSubject.hashCode(); // don't stackOverflow } @Test - public void testIsIdSupported() throws Exception { - CategoryParameter testSubject; - boolean result; - - // default test - testSubject = createTestSubject(); - result = testSubject.isIdSupported(); + public void shouldHaveValidBeanEquals() { + assertThat(CategoryParameter.class, hasValidBeanEqualsExcluding(excludedProperties)); } - @Test - public void testSetIdSupported() throws Exception { - CategoryParameter testSubject; - boolean idSupported = false; - - // default test - testSubject = createTestSubject(); - testSubject.setIdSupported(idSupported); - } } diff --git a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java index e2effd5ca..3a7d4690d 100644 --- a/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java +++ b/vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java @@ -20,9 +20,32 @@ package org.onap.vid.testUtils; +import static org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptors; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.RETURNS_DEFAULTS; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.mockito.Mockito.withSettings; +import static org.testng.Assert.fail; + import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; +import java.beans.PropertyDescriptor; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; +import java.net.URI; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.json.JSONArray; @@ -32,28 +55,11 @@ import org.mockito.MockSettings; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import org.onap.portalsdk.core.domain.support.DomainVo; import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.asdc.beans.Service; import org.springframework.mock.env.MockEnvironment; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.Serializable; -import java.net.URI; -import java.util.Iterator; -import java.util.List; - -import static fj.parser.Parser.fail; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.*; - /** * Created by Oren on 6/7/17. */ @@ -125,6 +131,12 @@ public class TestUtils { valueType); } + public static String[] allPropertiesOf(Class aClass) { + return Arrays.stream(getPropertyDescriptors(aClass)) + .map(PropertyDescriptor::getDisplayName) + .toArray(String[]::new); + } + public static class JavaxRsClientMocks { private final javax.ws.rs.client.Client fakeClient; -- cgit 1.2.3-korg