Test AaiController's get-tenants existing flow
[vid.git] / vid-app-common / src / test / java / org / onap / vid / mso / rest / TaskTest.java
index 5d1e480..bc1735b 100644 (file)
 
 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 String templateTaskJson(String insertion) {
+        return ""
+            + "{ "
+            + "  \"taskId\": \"taskId\", "
+            + "  \"type\": \"type\", "
+            + "  \"nfRole\": \"nfRole\", "
+            + "  \"subscriptionServiceType\": \"subscriptionServiceType\", "
+            + "  \"originalRequestId\": \"originalRequestId\", "
+            + "  \"originalRequestorId\": \"originalRequestorId\", "
+            + "  \"buildingBlockName\": \"buildingBlockName\", "
+            + "  \"buildingBlockStep\": \"buildingBlockStep\", "
+            + "  \"errorSource\": \"errorSource\", "
+            + "  \"errorCode\": \"errorCode\", "
+            + "  \"errorMessage\": \"errorMessage\", "
+            + insertion
+            + "  \"validResponses\": [ "
+            + "    \"a\", "
+            + "    \"b\", "
+            + "    \"c\" "
+            + "  ] "
+            + "} ";
+    }
+
+    private final String TASK_JSON = templateTaskJson(""
+        + "  \"description\": \"description\", "
+        + "  \"timeout\": \"timeout\", "
+    );
+
+    private final String TASK_JSON_WITHOUT_TIMEOUT = templateTaskJson("");
+
+    private Task newTaskWithPopulatedFields() {
+        Task task = TestUtils.setStringsInStringFields(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())
+        );
+    }
+
+    @Test
+    public void deserializeTaskWithoutTimeout() throws IOException {
+        /*
+        SO may return no timeout, and therefore no description as well
+         */
+        final Task taskWithoutTimeout = newTaskWithPopulatedFields();
+        taskWithoutTimeout.setDescription(null);
+        taskWithoutTimeout.setTimeout(null);
+
+        assertThat(
+            mapper.readValue(TASK_JSON_WITHOUT_TIMEOUT, Task.class),
+            is(taskWithoutTimeout)
+        );
+    }
 }