Add tests for AaiServiceImpl 01/78301/2
authorkurczews <krzysztof.kurczewski@nokia.com>
Tue, 12 Feb 2019 13:55:53 +0000 (14:55 +0100)
committerkurczews <krzysztof.kurczewski@nokia.com>
Mon, 18 Feb 2019 07:28:47 +0000 (08:28 +0100)
Issue-ID: VID-386
Change-Id: I8959a30b8cbd38663dd410b23d167c405ed2592e
Signed-off-by: kurczews <krzysztof.kurczewski@nokia.com>
vid-app-common/src/main/java/org/onap/vid/controller/WebConfig.java
vid-app-common/src/main/java/org/onap/vid/services/AaiServiceImpl.java
vid-app-common/src/test/java/org/onap/vid/controller/LocalWebConfig.java
vid-app-common/src/test/java/org/onap/vid/services/AaiServiceImplTest.java

index 68d5b71..8fe7c1f 100644 (file)
@@ -70,8 +70,9 @@ public class WebConfig {
     }
 
     @Bean
-    public AaiService getAaiService() {
-        return new AaiServiceImpl();
+    public AaiService getAaiService(AaiClientInterface aaiClient, AaiOverTLSClientInterface aaiOverTLSClient,
+        AaiResponseTranslator aaiResponseTranslator, AAITreeNodeBuilder aaiTreeNode, AAIServiceTree aaiServiceTree) {
+        return new AaiServiceImpl(aaiClient, aaiOverTLSClient, aaiResponseTranslator, aaiTreeNode, aaiServiceTree);
     }
 
     @Bean
index fe4a661..63da278 100644 (file)
@@ -63,23 +63,29 @@ public class AaiServiceImpl implements AaiService {
     private static final String CLOUD_REGION_NODE_TYPE = "cloud-region";
     private int indexOfSubscriberName = 6;
 
-    @Autowired
     private AaiClientInterface aaiClient;
-
-    @Autowired
     private AaiOverTLSClientInterface aaiOverTLSClient;
-
-    @Autowired
     private AaiResponseTranslator aaiResponseTranslator;
-
-    @Autowired
     private AAITreeNodeBuilder aaiTreeNode;
-
-    @Autowired
     private AAIServiceTree aaiServiceTree;
 
     private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(AaiServiceImpl.class);
 
+    @Autowired
+    public AaiServiceImpl(
+        AaiClientInterface aaiClient,
+        AaiOverTLSClientInterface aaiOverTLSClient,
+        AaiResponseTranslator aaiResponseTranslator,
+        AAITreeNodeBuilder aaiTreeNode,
+        AAIServiceTree aaiServiceTree)
+    {
+        this.aaiClient = aaiClient;
+        this.aaiOverTLSClient = aaiOverTLSClient;
+        this.aaiResponseTranslator = aaiResponseTranslator;
+        this.aaiTreeNode = aaiTreeNode;
+        this.aaiServiceTree = aaiServiceTree;
+    }
+
     private List<Service> convertModelToService(Model model) {
         List<Service> services = new ArrayList<>();
         String category = "";
@@ -332,13 +338,11 @@ public class AaiServiceImpl implements AaiService {
         AaiResponse<GetTenantsResponse[]> aaiGetTenantsResponse = aaiClient.getTenants(globalCustomerId, serviceType);
         GetTenantsResponse[] tenants = aaiGetTenantsResponse.getT();
         if (tenants != null) {
-            for (int i = 0; i < tenants.length; i++) {
-                tenants[i].isPermitted = roleValidator.isTenantPermitted(globalCustomerId, serviceType, tenants[i].tenantName);
+            for (GetTenantsResponse tenant : tenants) {
+                tenant.isPermitted = roleValidator.isTenantPermitted(globalCustomerId, serviceType, tenant.tenantName);
             }
         }
         return aaiGetTenantsResponse;
-
-
     }
 
     @Override
index e0ab34c..c66b74d 100644 (file)
@@ -24,12 +24,15 @@ package org.onap.vid.controller;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.onap.vid.aai.AaiClient;
 import org.onap.vid.aai.AaiClientInterface;
+import org.onap.vid.aai.AaiOverTLSClientInterface;
 import org.onap.vid.aai.AaiResponseTranslator;
 import org.onap.vid.aai.model.PortDetailsTranslator;
 import org.onap.vid.aai.util.*;
 import org.onap.vid.asdc.AsdcClient;
 import org.onap.vid.asdc.parser.ToscaParserImpl2;
 import org.onap.vid.asdc.parser.VidNotionsBuilder;
+import org.onap.vid.services.AAIServiceTree;
+import org.onap.vid.services.AAITreeNodeBuilder;
 import org.onap.vid.services.AaiService;
 import org.onap.vid.services.AaiServiceImpl;
 import org.onap.vid.services.VidService;
@@ -62,8 +65,9 @@ public class LocalWebConfig {
     }
 
     @Bean
-    public AaiService getAaiService() {
-        return new AaiServiceImpl();
+    public AaiService getAaiService(AaiClientInterface aaiClient, AaiOverTLSClientInterface aaiOverTLSClient,
+        AaiResponseTranslator aaiResponseTranslator, AAITreeNodeBuilder aaiTreeNode, AAIServiceTree aaiServiceTree) {
+        return new AaiServiceImpl(aaiClient, aaiOverTLSClient, aaiResponseTranslator, aaiTreeNode, aaiServiceTree);
     }
 
     @Bean
index efa12f2..04f47d4 100644 (file)
 
 package org.onap.vid.services;
 
-import com.google.common.collect.ImmutableList;
-import io.joshworks.restclient.http.HttpResponse;
-import org.junit.Assert;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import javax.ws.rs.core.Response;
 import org.junit.Test;
+import org.onap.vid.aai.AaiClientInterface;
+import org.onap.vid.aai.AaiGetVnfResponse;
+import org.onap.vid.aai.AaiOverTLSClientInterface;
 import org.onap.vid.aai.AaiResponse;
-import org.onap.vid.aai.SubscriberFilteredResults;
-import org.onap.vid.aai.model.AaiGetOperationalEnvironments.OperationalEnvironmentList;
-import org.onap.vid.aai.model.AaiGetPnfs.Pnf;
+import org.onap.vid.aai.AaiResponseTranslator;
 import org.onap.vid.aai.model.AaiGetTenatns.GetTenantsResponse;
-import org.onap.vid.model.SubscriberList;
+import org.onap.vid.aai.model.VnfResult;
 import org.onap.vid.roles.RoleValidator;
 
-import java.util.List;
-
 public class AaiServiceImplTest {
 
-    private AaiServiceImpl createTestSubject() {
-        return new AaiServiceImpl();
-    }
+    private AaiClientInterface aaiClient = mock(AaiClientInterface.class);
+    private AaiOverTLSClientInterface aaiSslClient = mock(AaiOverTLSClientInterface.class);
+    private AaiResponseTranslator aaiResponseTranslator = mock(AaiResponseTranslator.class);
+    private AAITreeNodeBuilder aaiTreeNode = mock(AAITreeNodeBuilder.class);
+    private AAIServiceTree aaiServiceTree = mock(AAIServiceTree.class);
 
-    @Test
-    public void testGetFullSubscriberList() throws Exception {
-        AaiServiceImpl testSubject;
-        RoleValidator roleValidator = null;
-        SubscriberFilteredResults result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getFullSubscriberList(roleValidator);
-        } catch (
-
-        Exception e) {
-        }
-    }
+    private AaiServiceImpl aaiService = new AaiServiceImpl(
+        aaiClient, aaiSslClient, aaiResponseTranslator, aaiTreeNode, aaiServiceTree
+    );
 
     @Test
-    public void testGetOperationalEnvironments() throws Exception {
-        AaiServiceImpl testSubject;
-        String operationalEnvironmentType = "";
-        String operationalEnvironmentStatus = "";
-        AaiResponse<OperationalEnvironmentList> result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getOperationalEnvironments(operationalEnvironmentType, operationalEnvironmentStatus);
-        } catch (
-
-        Exception e) {
-        }
-    }
+    public void shouldRetrievePnf() {
+        // given
+        String globalCustomerId = "global_customer";
+        String serviceType = "service_type";
+        String modelVersionId = "model_version";
+        String modelInvariantId = "model_invariant_id";
+        String cloudRegion = "cloud_region";
+        String equipVendor = "equip_vendor";
+        String equipModel = "equip_model";
 
-    @Test
-    public void testGetFullSubscriberList_1() throws Exception {
-        AaiServiceImpl testSubject;
-        HttpResponse<SubscriberList> result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getFullSubscriberList();
-        } catch (
-
-        Exception e) {
-        }
-    }
+        AaiResponse response = mock(AaiResponse.class);
+        when(aaiClient.getPNFData(
+            globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegion, equipVendor, equipModel
+        )).thenReturn(response);
 
-    @Test
-    public void testGetSubscriberData() throws Exception {
-        AaiServiceImpl testSubject;
-        String subscriberId = "";
-        RoleValidator roleValidator = null;
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getSubscriberData(subscriberId, roleValidator);
-        } catch (
-
-        Exception e) {
-        }
-    }
+        // when
+        AaiResponse actual = aaiService.getPNFData(
+            globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegion, equipVendor, equipModel
+        );
 
-    @Test
-    public void testGetServiceInstanceSearchResults() throws Exception {
-        AaiServiceImpl testSubject;
-        String subscriberId = "";
-        String instanceIdentifier = "";
-        RoleValidator roleValidator = null;
-        List<String> owningEntities = null;
-        List<String> projects = null;
-        AaiResponse result;
-
-        // test 1
-        testSubject = createTestSubject();
-        subscriberId = null;
-        instanceIdentifier = null;
-        result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator,
-                owningEntities, projects);
-        Assert.assertNotEquals(null, result);
-
-        /*/ test 2
-        testSubject = createTestSubject();
-        subscriberId = "";
-        instanceIdentifier = null;
-        result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator,
-                owningEntities, projects);
-        Assert.assertNotEquals(null, result);
-
-        // test 3
-        testSubject = createTestSubject();
-        instanceIdentifier = null;
-        subscriberId = null;
-        result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator,
-                owningEntities, projects);
-        Assert.assertEquals(null, result);
-
-        // test 4
-        testSubject = createTestSubject();
-        instanceIdentifier = "";
-        subscriberId = null;
-        result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator,
-                owningEntities, projects);
-        Assert.assertEquals(null, result);
-
-        // test 5
-        testSubject = createTestSubject();
-        owningEntities = null;
-        result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator,
-                owningEntities, projects);
-        Assert.assertEquals(null, result);
-
-        // test 6
-        testSubject = createTestSubject();
-        projects = null;
-        result = testSubject.getServiceInstanceSearchResults(subscriberId, instanceIdentifier, roleValidator,
-                owningEntities, projects);
-        Assert.assertEquals(null, result);*/
+        // then
+        assertThat(response).isEqualTo(actual);
     }
 
     @Test
-    public void testGetVersionByInvariantId() throws Exception {
-        AaiServiceImpl testSubject;
-        List<String> modelInvariantId = ImmutableList.of("some invariant id");
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            testSubject.getVersionByInvariantId(modelInvariantId);
-        } catch (
-
-        Exception e) {
-        }
-    }
+    @SuppressWarnings("unchecked")
+    public void shouldRetrieveSpecificPnf() {
+        // given
+        String pnfId = "some_pnf_id";
 
-    @Test
-    public void testGetSpecificPnf() throws Exception {
-        AaiServiceImpl testSubject;
-        String pnfId = "";
-        AaiResponse<Pnf> result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getSpecificPnf(pnfId);
-        } catch (
-
-        Exception e) {
-        }
-    }
+        AaiResponse response = mock(AaiResponse.class);
+        when(aaiClient.getSpecificPnf(pnfId)).thenReturn(response);
 
-    @Test
-    public void testGetPNFData() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalCustomerId = "";
-        String serviceType = "";
-        String modelVersionId = "";
-        String modelInvariantId = "";
-        String cloudRegion = "";
-        String equipVendor = "";
-        String equipModel = "";
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getPNFData(globalCustomerId, serviceType, modelVersionId, modelInvariantId,
-                    cloudRegion, equipVendor, equipModel);
-        } catch (
-
-        Exception e) {
-        }
-    }
+        // when
+        AaiResponse actual = aaiService.getSpecificPnf(pnfId);
 
-    @Test
-    public void testGetServices() throws Exception {
-        AaiServiceImpl testSubject;
-        RoleValidator roleValidator = null;
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getServices(roleValidator);
-        } catch (
-
-        Exception e) {
-        }
+        // then
+        assertThat(response).isEqualTo(actual);
     }
 
     @Test
-    public void testGetTenants() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalCustomerId = "";
-        String serviceType = "";
-        RoleValidator roleValidator = null;
-        AaiResponse<GetTenantsResponse[]> result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getTenants(globalCustomerId, serviceType, roleValidator);
-        } catch (
-
-        Exception e) {
-        }
-    }
+    public void shouldRetrieveTenantsByInvariantId() {
+        // given
+        List<String> modelInvariantId = new ArrayList<>();
 
-    @Test
-    public void testGetVNFData() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalSubscriberId = "";
-        String serviceType = "";
-        String serviceInstanceId = "";
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getVNFData(globalSubscriberId, serviceType, serviceInstanceId);
-        } catch (
-
-        Exception e) {
-        }
-    }
+        Response response = mock(Response.class);
+        when(aaiClient.getVersionByInvariantId(modelInvariantId)).thenReturn(response);
 
-    @Test
-    public void testGetVNFData_1() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalSubscriberId = "";
-        String serviceType = "";
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            testSubject.getVNFData(globalSubscriberId, serviceType);
-        } catch (
-
-        Exception e) {
-        }
-    }
+        // when
+        Response actual = aaiService.getVersionByInvariantId(modelInvariantId);
 
-    @Test
-    public void testGetAaiZones() throws Exception {
-        AaiServiceImpl testSubject;
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getAaiZones();
-        } catch (
-
-        Exception e) {
-        }
+        // then
+        assertThat(response).isEqualTo(actual);
     }
 
     @Test
-    public void testGetAicZoneForPnf() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalCustomerId = "";
-        String serviceType = "";
-        String serviceId = "";
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getAicZoneForPnf(globalCustomerId, serviceType, serviceId);
-        } catch (
-
-        Exception e) {
-        }
-    }
+    @SuppressWarnings("unchecked")
+    public void shouldRetrieveTenants() {
+        // given
+        String globalCustomerId = "global_customer";
+        String serviceType = "service_type";
 
-    @Test
-    public void testGetNodeTemplateInstances() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalCustomerId = "";
-        String serviceType = "";
-        String modelVersionId = "";
-        String modelInvariantId = "";
-        String cloudRegion = "";
-        AaiResponse result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getNodeTemplateInstances(globalCustomerId, serviceType, modelVersionId,
-                    modelInvariantId, cloudRegion);
-        } catch (
-
-        Exception e) {
-        }
+        GetTenantsResponse permittedTenant = new GetTenantsResponse(
+            "cloud_region", "cloud_owner", "permitted_tenant", "tenant_id", false
+        );
+        GetTenantsResponse unpermittedTenant = new GetTenantsResponse(
+            "cloud_region", "cloud_owner", "unpermitted_tenant", "tenant_id", false
+        );
+
+        AaiResponse<GetTenantsResponse[]> response = mock(AaiResponse.class);
+        when(response.getT()).thenReturn(new GetTenantsResponse[]{ permittedTenant, unpermittedTenant });
+        when(aaiClient.getTenants(globalCustomerId, serviceType)).thenReturn(response);
+
+        RoleValidator roleValidator = mock(RoleValidator.class);
+        when(roleValidator.isTenantPermitted(globalCustomerId, serviceType, "permitted_tenant")).thenReturn(true);
+        when(roleValidator.isTenantPermitted(globalCustomerId, serviceType, "unpermitted_tenant")).thenReturn(false);
+
+        // when
+        AaiResponse actual = aaiService.getTenants(globalCustomerId, serviceType, roleValidator);
+
+        // then
+        assertThat(response).isEqualTo(actual);
+        assertThat(permittedTenant.isPermitted).isTrue();
+        assertThat(unpermittedTenant.isPermitted).isFalse();
     }
 
     @Test
-    public void testGetServicesByDistributionStatus() throws Exception {
-        AaiServiceImpl testSubject;
+    public void shouldRetrieveVNFs() {
+        // given
+        String globalSubscriber = "global_subscriber";
+        String serviceType = "service_type";
+        String serviceInstanceId = "service_instance";
+
+        AaiResponse response = mock(AaiResponse.class);
+        when(aaiClient.getVNFData(globalSubscriber, serviceType, serviceInstanceId)).thenReturn(response);
 
-        // default test
-        try {
-            testSubject = createTestSubject();
-            testSubject.getServicesByDistributionStatus();
-        } catch (
+        // when
+        AaiResponse actual = aaiService.getVNFData(globalSubscriber, serviceType, serviceInstanceId);
 
-        Exception e) {
-        }
+        // then
+        assertThat(response).isEqualTo(actual);
     }
 
     @Test
-    public void testGetServiceInstanceAssociatedPnfs() throws Exception {
-        AaiServiceImpl testSubject;
-        String globalCustomerId = "";
-        String serviceType = "";
-        String serviceInstanceId = "";
-        List<String> result;
-
-        // default test
-        try {
-            testSubject = createTestSubject();
-            result = testSubject.getServiceInstanceAssociatedPnfs(globalCustomerId, serviceType, serviceInstanceId);
-        } catch (
-
-        Exception e) {
-        }
+    @SuppressWarnings("unchecked")
+    public void shouldRetrieveAndFilterVNFsBySubscriberAndServiceType() {
+        // given
+        String globalSubscriber = "global_subscriber";
+        String serviceType = "service_type";
+
+        VnfResult genericVnf = new VnfResult();
+        genericVnf.nodeType = "generic-vnf";
+
+        VnfResult serviceInstance = new VnfResult();
+        serviceInstance.nodeType = "service-instance";
+
+        VnfResult someVnf = new VnfResult();
+        someVnf.nodeType = "some-vnf";
+
+        AaiResponse<AaiGetVnfResponse> response = mock(AaiResponse.class);
+        AaiGetVnfResponse vnfs = new AaiGetVnfResponse();
+        vnfs.results = Arrays.asList(genericVnf, serviceInstance, someVnf);
+        when(response.getT()).thenReturn(vnfs);
+
+        when(aaiClient.getVNFData(globalSubscriber, serviceType)).thenReturn(response);
+
+        // when
+        AaiResponse actual = aaiService.getVNFData(globalSubscriber, serviceType);
+
+        // then
+        assertThat(response).isEqualTo(actual);
+        assertThat(response.getT().results).containsOnly(genericVnf, serviceInstance);
     }
 }
\ No newline at end of file