From 03359a5641dfb26f93d630a1b1232c0ffc6ec51c Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Tue, 19 Mar 2019 12:26:20 +0200 Subject: Task.java to Task.kt, and test it Also move setRandomStrings() to TestUtils.setStringsInStringProperties() Issue-ID: VID-403 Change-Id: I0216d16983699f1b91c23d167472e36bcae10ce1 Signed-off-by: Ittay Stern --- .../vid/job/command/InstanceGroupCommandTest.java | 31 +++++-------- .../test/java/org/onap/vid/mso/rest/TaskTest.java | 53 +++++++++++++++++++++- .../java/org/onap/vid/testUtils/TestUtils.java | 34 +++++++++++++- 3 files changed, 94 insertions(+), 24 deletions(-) (limited to 'vid-app-common/src/test') diff --git a/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java b/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java index 47ec44ca7..b4a5c64f5 100644 --- a/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java @@ -20,8 +20,14 @@ package org.onap.vid.job.command; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.only; +import static org.mockito.Mockito.same; +import static org.mockito.Mockito.verify; + import com.google.common.collect.ImmutableMap; -import org.apache.commons.beanutils.BeanUtils; +import java.util.Optional; import org.mockito.Answers; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -32,19 +38,11 @@ import org.onap.vid.model.serviceInstantiation.InstanceGroup; import org.onap.vid.mso.RestMsoImplementation; import org.onap.vid.mso.model.ModelInfo; import org.onap.vid.services.AsyncInstantiationBusinessLogic; +import org.onap.vid.testUtils.TestUtils; import org.springframework.http.HttpMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import java.util.Optional; -import java.util.Set; - -import static java.util.function.Function.identity; -import static java.util.stream.Collectors.toMap; -import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; - public class InstanceGroupCommandTest { @Mock(answer = Answers.RETURNS_MOCKS) @@ -73,7 +71,7 @@ public class InstanceGroupCommandTest { @Test public void createMyself_callsMso() { - final ModelInfo serviceModelInfo = setRandomStrings(new ModelInfo()); + final ModelInfo serviceModelInfo = setStrings(new ModelInfo()); final String serviceInstanceId = "service-instance-id"; final String userId = "ff3223"; @@ -92,14 +90,7 @@ public class InstanceGroupCommandTest { } - private ModelInfo setRandomStrings(ModelInfo object) { - try { - Set fields = BeanUtils.describe(object).keySet(); - BeanUtils.populate(object, - fields.stream().collect(toMap(identity(), s -> randomAlphanumeric(4)))); - return object; - } catch (Exception e) { - throw new RuntimeException(e); - } + private ModelInfo setStrings(ModelInfo object) { + return TestUtils.setStringsInStringProperties(object); } } diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/rest/TaskTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/rest/TaskTest.java index 5d1e480fe..f6d0c763f 100644 --- a/vid-app-common/src/test/java/org/onap/vid/mso/rest/TaskTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/mso/rest/TaskTest.java @@ -20,15 +20,64 @@ package org.onap.vid.mso.rest; -import org.testng.annotations.Test; - import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals; +import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableList; +import java.io.IOException; +import org.onap.vid.testUtils.TestUtils; +import org.testng.annotations.Test; + public class TaskTest { + private final ObjectMapper mapper = new ObjectMapper(); + private final String TASK_JSON = "" + + "{ " + + " \"taskId\": \"taskId\", " + + " \"type\": \"type\", " + + " \"nfRole\": \"nfRole\", " + + " \"subscriptionServiceType\": \"subscriptionServiceType\", " + + " \"originalRequestId\": \"originalRequestId\", " + + " \"originalRequestorId\": \"originalRequestorId\", " + + " \"buildingBlockName\": \"buildingBlockName\", " + + " \"buildingBlockStep\": \"buildingBlockStep\", " + + " \"errorSource\": \"errorSource\", " + + " \"errorCode\": \"errorCode\", " + + " \"errorMessage\": \"errorMessage\", " + + " \"validResponses\": [ " + + " \"a\", " + + " \"b\", " + + " \"c\" " + + " ] " + + "} "; + + private Task newTaskWithPopulatedFields() { + Task task = TestUtils.setStringsInStringProperties(new Task()); + task.setValidResponses(ImmutableList.of("a", "b", "c")); + return task; + } + @Test public void shouldHaveProperSettersAndGetters() { assertThat(Task.class, hasValidGettersAndSetters()); } + + @Test + public void serializeTask() throws IOException { + assertThat( + mapper.writeValueAsString(newTaskWithPopulatedFields()), + jsonEquals(TASK_JSON) + ); + } + + @Test + public void deserializeTask() throws IOException { + assertThat( + mapper.readValue(TASK_JSON, Task.class), + is(newTaskWithPopulatedFields()) + ); + } } 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 3a7d4690d..3d919d72d 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,6 +20,9 @@ package org.onap.vid.testUtils; +import static java.util.function.Function.identity; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; import static org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptors; import static org.mockito.Matchers.any; import static org.mockito.Mockito.RETURNS_DEFAULTS; @@ -46,6 +49,7 @@ 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.commons.beanutils.BeanUtils; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.json.JSONArray; @@ -55,7 +59,6 @@ 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; @@ -131,12 +134,39 @@ public class TestUtils { valueType); } - public static String[] allPropertiesOf(Class aClass) { + public static String[] allPropertiesOf(Class aClass) { return Arrays.stream(getPropertyDescriptors(aClass)) .map(PropertyDescriptor::getDisplayName) .toArray(String[]::new); } + private static List allStringPropertiesOf(T object) { + return Arrays.stream(getPropertyDescriptors(object.getClass())) + .filter(descriptor -> descriptor.getPropertyType().isAssignableFrom(String.class)) + .map(PropertyDescriptor::getDisplayName) + .collect(toList()); + } + + /** + * Sets each String property with a value equal to the name of + * the property; e.g.: { name: "name", city: "city" } + * @param object + * @param + * @return The modified object + */ + public static T setStringsInStringProperties(T object) { + try { + final List stringFields = allStringPropertiesOf(object); + + BeanUtils.populate(object, stringFields.stream() + .collect(toMap(identity(), identity()))); + + return object; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + public static class JavaxRsClientMocks { private final javax.ws.rs.client.Client fakeClient; -- cgit 1.2.3-korg