From 2f60aa71dc51b6748ead045d363fd2f0d7f50286 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Mon, 17 Feb 2020 11:28:35 +0200 Subject: [PATCH] Test AaiController's get-tenants existing flow Issue-ID: VID-758 Change-Id: I0839260d3e43697cb15e8e0f8998e521c9d3a2f6 Signed-off-by: Ittay Stern --- .../org/onap/vid/controller/GetTenantsTest.java | 83 ++++++++++++++++++++++ .../InstantiationModelSerializationTest.java | 4 +- .../model/serviceInstantiation/VfModuleTest.java | 6 +- .../test/java/org/onap/vid/mso/rest/TaskTest.java | 2 +- .../java/org/onap/vid/testUtils/TestUtils.java | 12 ++-- 5 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 vid-app-common/src/test/java/org/onap/vid/controller/GetTenantsTest.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 index 000000000..46f995988 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/controller/GetTenantsTest.java @@ -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 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 diff --git a/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java b/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java index f0c96b839..6a5b102a0 100644 --- a/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/InstantiationModelSerializationTest.java @@ -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; } diff --git a/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/VfModuleTest.java b/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/VfModuleTest.java index a1c78c421..89b0acadb 100644 --- a/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/VfModuleTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/model/serviceInstantiation/VfModuleTest.java @@ -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 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 d78627557..bc1735b06 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 @@ -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; } 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 71f7ee015..242977f59 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 @@ -189,10 +189,10 @@ public class TestUtils { return result; } - private static List allStringPropertiesOf(T object) { - return getPropertyDescriptorsRecursively(object.getClass()).stream() - .filter(descriptor -> descriptor.getPropertyType().isAssignableFrom(String.class)) - .map(PropertyDescriptor::getDisplayName) + private static List 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 * @return The modified object */ - public static T setStringsInStringProperties(T object) { - allStringPropertiesOf(object).forEach(it -> { + public static T setStringsInStringFields(T object) { + allStringFieldsOf(object).forEach(it -> { try { FieldUtils.writeField(object, it, it, true); } catch (IllegalAccessException e) { -- 2.16.6