Add tests for AaiServiceImpl
[vid.git] / vid-app-common / src / test / java / org / onap / vid / services / AaiServiceImplTest.java
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