Test AaiController's get-tenants existing flow 19/101819/3
authorIttay Stern <ittay.stern@att.com>
Mon, 17 Feb 2020 09:28:35 +0000 (11:28 +0200)
committerIttay Stern <ittay.stern@att.com>
Mon, 17 Feb 2020 09:52:36 +0000 (09:52 +0000)
Issue-ID: VID-758

Change-Id: I0839260d3e43697cb15e8e0f8998e521c9d3a2f6
Signed-off-by: Ittay Stern <ittay.stern@att.com>
vid-app-common/src/test/java/org/onap/vid/controller/GetTenantsTest.java [new file with mode: 0644]
vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java
vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/VfModuleTest.java
vid-app-common/src/test/java/org/onap/vid/mso/rest/TaskTest.java
vid-app-common/src/test/java/org/onap/vid/testUtils/TestUtils.java

diff --git a/vid-app-common/src/test/java/org/onap/vid/controller/GetTenantsTest.java b/vid-app-common/src/test/java/org/onap/vid/controller/GetTenantsTest.java
new file mode 100644 (file)
index 0000000..46f9959
--- /dev/null
@@ -0,0 +1,83 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2020 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.controller;
+
+import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals;
+import static org.assertj.core.util.Arrays.array;
+import static org.assertj.core.util.Lists.list;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.onap.vid.aai.AaiResponse;
+import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse;
+import org.onap.vid.aai.util.AAIRestInterface;
+import org.onap.vid.roles.RoleProvider;
+import org.onap.vid.roles.RoleValidator;
+import org.onap.vid.services.AaiService;
+import org.onap.vid.testUtils.TestUtils;
+import org.onap.vid.utils.SystemPropertiesWrapper;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+import org.togglz.core.manager.FeatureManager;
+
+public class GetTenantsTest {
+    @Mock private AaiService aaiService;
+    @Mock private AAIRestInterface aaiRestInterface;
+    @Mock private RoleProvider roleProvider;
+    @Mock private SystemPropertiesWrapper systemPropertiesWrapper;
+    @Mock private FeatureManager featureManager;
+    @Mock private RoleValidator roleValidator;
+
+    @InjectMocks
+    AaiController aaiController;
+
+    private MockMvc aaiControllerMvc;
+
+    private final GetTenantsResponse oneTenant =
+        TestUtils.setStringsInStringFields(new GetTenantsResponse());
+
+    @BeforeMethod
+    public void setUp() {
+        TestUtils.initMockitoMocks(this);
+        when(roleProvider.getUserRolesValidator(any())).thenReturn(roleValidator);
+        aaiControllerMvc = MockMvcBuilders.standaloneSetup(aaiController).build();
+    }
+
+    @Test
+    public void givenOneTenant_itIsReturned() throws Exception {
+        AaiResponse<GetTenantsResponse[]> aaiResponse =
+            new AaiResponse<>(array(oneTenant), null, 200);
+
+        when(aaiService.getTenants("global-customer-id", "service-type", roleValidator))
+            .thenReturn(aaiResponse);
+
+        aaiControllerMvc.perform(get("/aai_get_tenants/global-customer-id/service-type"))
+            .andExpect(status().isOk())
+            .andExpect(content().string(jsonEquals(list(oneTenant))));
+    }
+
+}
\ No newline at end of file
index f0c96b8..6a5b102 100644 (file)
@@ -32,7 +32,7 @@ import static org.hamcrest.Matchers.hasProperty;
 import static org.hamcrest.Matchers.nullValue;
 import static org.hamcrest.Matchers.samePropertyValuesAs;
 import static org.onap.vid.model.Action.Create;
-import static org.onap.vid.testUtils.TestUtils.setStringsInStringProperties;
+import static org.onap.vid.testUtils.TestUtils.setStringsInStringFields;
 import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER;
 
 import com.google.common.collect.ImmutableList;
@@ -190,7 +190,7 @@ public class InstantiationModelSerializationTest {
 
     private ModelInfo newModelInfo() {
         ModelInfo modelInfo = new ModelInfo();
-        setStringsInStringProperties(modelInfo);
+        setStringsInStringFields(modelInfo);
         return modelInfo;
     }
 
index a1c78c4..89b0aca 100644 (file)
@@ -25,7 +25,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.beans.HasPropertyWithValue.hasProperty;
 import static org.hamcrest.core.AllOf.allOf;
-import static org.onap.vid.testUtils.TestUtils.setStringsInStringProperties;
+import static org.onap.vid.testUtils.TestUtils.setStringsInStringFields;
 
 import org.onap.vid.mso.model.ModelInfo;
 import org.testng.annotations.Test;
@@ -51,12 +51,12 @@ public class VfModuleTest {
 
     private VfModule createVfModule() {
         VfModule vfModule = new VfModule(
-            setStringsInStringProperties(new ModelInfo()),
+            setStringsInStringFields(new ModelInfo()),
             null, null, null, null, null,
             null, null, null, true, true,
             null, null, true, null, true,
             true, null, null);
 
-        return setStringsInStringProperties(vfModule);
+        return setStringsInStringFields(vfModule);
     }
 }
\ No newline at end of file
index d786275..bc1735b 100644 (file)
@@ -66,7 +66,7 @@ public class TaskTest {
     private final String TASK_JSON_WITHOUT_TIMEOUT = templateTaskJson("");
 
     private Task newTaskWithPopulatedFields() {
-        Task task = TestUtils.setStringsInStringProperties(new Task());
+        Task task = TestUtils.setStringsInStringFields(new Task());
         task.setValidResponses(ImmutableList.of("a", "b", "c"));
         return task;
     }
index 71f7ee0..242977f 100644 (file)
@@ -189,10 +189,10 @@ public class TestUtils {
         return result;
     }
 
-    private static <T> List<String> allStringPropertiesOf(T object) {
-        return getPropertyDescriptorsRecursively(object.getClass()).stream()
-            .filter(descriptor -> descriptor.getPropertyType().isAssignableFrom(String.class))
-            .map(PropertyDescriptor::getDisplayName)
+    private static <T> List<String> allStringFieldsOf(T object) {
+        return FieldUtils.getAllFieldsList(object.getClass()).stream()
+            .filter(field -> field.getType().isAssignableFrom(String.class))
+            .map(Field::getName)
             .distinct()
             .collect(toList());
     }
@@ -231,8 +231,8 @@ public class TestUtils {
      * @param <T>
      * @return The modified object
      */
-    public static <T> T setStringsInStringProperties(T object) {
-        allStringPropertiesOf(object).forEach(it -> {
+    public static <T> T setStringsInStringFields(T object) {
+        allStringFieldsOf(object).forEach(it -> {
             try {
                 FieldUtils.writeField(object, it, it, true);
             } catch (IllegalAccessException e) {