summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2019-03-19 12:26:20 +0200
committerIttay Stern <ittay.stern@att.com>2019-03-19 12:38:48 +0200
commit03359a5641dfb26f93d630a1b1232c0ffc6ec51c (patch)
tree1df9986e80e912005bec9abe124c62e87d58d1c3
parent3394b255296c22ad171ac4c4a3f82fce05b48db2 (diff)
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 <ittay.stern@att.com>
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.java136
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.kt43
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/job/command/InstanceGroupCommandTest.java31
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/mso/rest/TaskTest.java53
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java34
5 files changed, 137 insertions, 160 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.java
deleted file mode 100644
index 1956d8a95..000000000
--- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * VID
- * ================================================================================
- * Copyright (C) 2017 - 2019 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.onap.vid.mso.rest;
-
-import java.util.List;
-
-public class Task {
-
- private String taskId;
- private String type;
- private String nfRole;
- private String subscriptionServiceType;
- private String originalRequestId;
- private String originalRequestorId;
- private String errorSource;
- private String errorCode;
- private String errorMessage;
- private String buildingBlockName;
- private String buildingBlockStep;
- private List<String> validResponses;
-
-
- public String getTaskId() {
- return taskId;
- }
-
- public void setTaskId(String taskId) {
- this.taskId = taskId;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getNfRole() {
- return nfRole;
- }
-
- public void setNfRole(String nfRole) {
- this.nfRole = nfRole;
- }
-
- public String getSubscriptionServiceType() {
- return subscriptionServiceType;
- }
-
- public void setSubscriptionServiceType(String subscriptionServiceType) {
- this.subscriptionServiceType = subscriptionServiceType;
- }
-
- public String getOriginalRequestId() {
- return originalRequestId;
- }
-
- public void setOriginalRequestId(String originalRequestId) {
- this.originalRequestId = originalRequestId;
- }
-
- public String getOriginalRequestorId() {
- return originalRequestorId;
- }
-
- public void setOriginalRequestorId(String originalRequestorId) {
- this.originalRequestorId = originalRequestorId;
- }
-
- public String getErrorSource() {
- return errorSource;
- }
-
- public void setErrorSource(String errorSource) {
- this.errorSource = errorSource;
- }
-
- public String getErrorCode() {
- return errorCode;
- }
-
- public void setErrorCode(String errorCode) {
- this.errorCode = errorCode;
- }
-
- public String getErrorMessage() {
- return errorMessage;
- }
-
- public void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
- }
-
- public String getBuildingBlockName() {
- return buildingBlockName;
- }
-
- public void setBuildingBlockName(String buildingBlockName) {
- this.buildingBlockName = buildingBlockName;
- }
-
- public String getBuildingBlockStep() {
- return buildingBlockStep;
- }
-
- public void setBuildingBlockStep(String buildingBlockStep) {
- this.buildingBlockStep = buildingBlockStep;
- }
-
- public List<String> getValidResponses() {
- return validResponses;
- }
-
- public void setValidResponses(List<String> validResponses) {
- this.validResponses = validResponses;
- }
-}
diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.kt b/vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.kt
new file mode 100644
index 000000000..311b0fbbe
--- /dev/null
+++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/Task.kt
@@ -0,0 +1,43 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 - 2019 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.onap.vid.mso.rest
+
+data class Task(
+ var taskId: String?,
+ var type: String?,
+ var nfRole: String?,
+ var subscriptionServiceType: String?,
+ var originalRequestId: String?,
+ var originalRequestorId: String?,
+ var errorSource: String?,
+ var errorCode: String?,
+ var errorMessage: String?,
+ var buildingBlockName: String?,
+ var buildingBlockStep: String?,
+ var validResponses: List<String>?
+) {
+ // i.e. "default constructor", no params
+ constructor() : this(
+ null, null, null, null,
+ null, null, null, null,
+ null, null, null, null
+ )
+}
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<String> 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<DomainVo> aClass) {
+ public static String[] allPropertiesOf(Class<?> aClass) {
return Arrays.stream(getPropertyDescriptors(aClass))
.map(PropertyDescriptor::getDisplayName)
.toArray(String[]::new);
}
+ private static <T> List<String> 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 <T>
+ * @return The modified object
+ */
+ public static <T> T setStringsInStringProperties(T object) {
+ try {
+ final List<String> 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;