Fix sonar issues
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / driver / src / test / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / nokia / onap / direct / notification / TestVnfcManager.java
index 87a1149..ece65ee 100644 (file)
@@ -17,21 +17,22 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification;
 
 import com.nokia.cbam.lcm.v32.model.AffectedVnfc;
 import com.nokia.cbam.lcm.v32.model.ResourceHandle;
+import io.reactivex.Observable;
+import java.util.ArrayList;
+import java.util.NoSuchElementException;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.onap.aai.domain.yang.v11.ObjectFactory;
-import org.onap.aai.domain.yang.v11.Vnfc;
+import org.onap.aai.api.NetworkApi;
+import org.onap.aai.model.Vnfc;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.AAIRestApiProvider;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.TestBase;
 
-import java.util.NoSuchElementException;
-
 import static junit.framework.TestCase.assertEquals;
 import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.AAIRestApiProvider.AAIService.NETWORK;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification.AbstractManager.buildRelationshipData;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.direct.notification.TestGenericVnfManager.assertRelation;
 import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.LifecycleManager.getCloudOwner;
@@ -39,17 +40,49 @@ import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.LifecycleManager.ge
 import static org.springframework.test.util.ReflectionTestUtils.setField;
 
 public class TestVnfcManager extends TestBase {
-    private ObjectFactory OBJECT_FACTORY = new ObjectFactory();
     private ArgumentCaptor<Vnfc> payload = ArgumentCaptor.forClass(Vnfc.class);
 
     @Mock
     private AAIRestApiProvider aaiRestApiProvider;
     private VnfcManager vnfcManager;
+    @Mock
+    private NetworkApi networkApi;
 
     @Before
     public void init() {
         vnfcManager = new VnfcManager(aaiRestApiProvider, cbamRestApiProvider, driverProperties);
         setField(VnfcManager.class, "logger", logger);
+        when(aaiRestApiProvider.getNetworkApi()).thenReturn(networkApi);
+    }
+
+
+    /**
+     * test create
+     */
+    @Test
+    public void testCreate() throws Exception {
+        AffectedVnfc affectedVnfc = new AffectedVnfc();
+        affectedVnfc.setComputeResource(new ResourceHandle());
+        affectedVnfc.getComputeResource().setResourceId("serverProviderId");
+        affectedVnfc.setId("vnfcId");
+        when(networkApi.getNetworkVnfcsVnfc("myVnfId_vnfcId", null, null, null, null, null, null, null, null, null)).thenReturn(Observable.error(new NoSuchElementException()));
+        when(networkApi.createOrUpdateNetworkVnfcsVnfc(eq("myVnfId_vnfcId"), payload.capture())).thenReturn(VOID_OBSERVABLE.value());
+        //when
+        vnfcManager.update(VIM_ID, "myTenantPrivderId", VNF_ID, affectedVnfc, true);
+        //verify
+        Vnfc vnfc = payload.getValue();
+        assertEquals("myVnfId_vnfcId", vnfc.getVnfcName());
+        assertEquals("vnfcId", vnfc.getNfcFunction());
+        assertEquals("vnfcId", vnfc.getNfcNamingCode());
+        assertRelation(payload.getValue().getRelationshipList(), "generic-vnf", buildRelationshipData("generic-vnf.vnf-id", VNF_ID));
+
+        assertRelation(vnfc.getRelationshipList(), "vserver",
+                buildRelationshipData("cloud-region.cloud-owner", getCloudOwner(VIM_ID)),
+                buildRelationshipData("cloud-region.cloud-region-id", getRegionName(VIM_ID)),
+                buildRelationshipData("tenant.tenant-id", "myTenantPrivderId"),
+                buildRelationshipData("vserver.vserver-id", "serverProviderId"));
+        assertEquals(2, vnfc.getRelationshipList().size());
+        VOID_OBSERVABLE.assertCalled();
     }
 
     /**
@@ -61,8 +94,11 @@ public class TestVnfcManager extends TestBase {
         affectedVnfc.setComputeResource(new ResourceHandle());
         affectedVnfc.getComputeResource().setResourceId("serverProviderId");
         affectedVnfc.setId("vnfcId");
-        when(aaiRestApiProvider.get(eq(logger), eq(NETWORK), eq("/vnfcs/vnfc/myVnfId_vnfcId"), eq(Vnfc.class))).thenThrow(new NoSuchElementException());
-        when(aaiRestApiProvider.put(eq(logger), eq(NETWORK), eq("/vnfcs/vnfc/myVnfId_vnfcId"), payload.capture(), eq(Void.class))).thenReturn(null);
+        Vnfc existingVnfc = new Vnfc();
+        existingVnfc.setRelationshipList(new ArrayList<>());
+        existingVnfc.getRelationshipList().add(GenericVnfManager.linkTo("any"));
+        when(networkApi.getNetworkVnfcsVnfc("myVnfId_vnfcId", null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(existingVnfc));
+        when(networkApi.createOrUpdateNetworkVnfcsVnfc(eq("myVnfId_vnfcId"), payload.capture())).thenReturn(VOID_OBSERVABLE.value());
         //when
         vnfcManager.update(VIM_ID, "myTenantPrivderId", VNF_ID, affectedVnfc, true);
         //verify
@@ -77,6 +113,8 @@ public class TestVnfcManager extends TestBase {
                 buildRelationshipData("cloud-region.cloud-region-id", getRegionName(VIM_ID)),
                 buildRelationshipData("tenant.tenant-id", "myTenantPrivderId"),
                 buildRelationshipData("vserver.vserver-id", "serverProviderId"));
+        assertEquals(2, vnfc.getRelationshipList().size());
+        VOID_OBSERVABLE.assertCalled();
     }
 
     /**
@@ -88,12 +126,16 @@ public class TestVnfcManager extends TestBase {
         affectedVnfc.setComputeResource(new ResourceHandle());
         affectedVnfc.getComputeResource().setResourceId("serverProviderId");
         affectedVnfc.setId("vnfcId");
-        when(aaiRestApiProvider.get(eq(logger), eq(NETWORK), eq("/vnfcs/vnfc/myVnfId_vnfcId"), eq(Vnfc.class))).thenThrow(new NoSuchElementException());
-        when(aaiRestApiProvider.put(eq(logger), eq(NETWORK), eq("/vnfcs/vnfc/myVnfId_vnfcId"), payload.capture(), eq(Void.class))).thenReturn(null);
+        Vnfc existingVnfc = new Vnfc();
+        existingVnfc.setResourceVersion("v3");
+        existingVnfc.setVnfcName("myVnfId_vnfcId");
+        when(networkApi.getNetworkVnfcsVnfc("myVnfId_vnfcId", null, null, null, null, null, null, null, null, null)).thenReturn(buildObservable(existingVnfc));
+        when(networkApi.deleteNetworkVnfcsVnfc("myVnfId_vnfcId", "v3")).thenReturn(VOID_OBSERVABLE.value());
         //when
         vnfcManager.delete(VNF_ID, affectedVnfc);
         //verify
-        aaiRestApiProvider.delete(logger, NETWORK, "/vnfcs/vnfc/myVnfId_vnfcId");
+        verify(networkApi).deleteNetworkVnfcsVnfc("myVnfId_vnfcId", "v3");
+        VOID_OBSERVABLE.assertCalled();
     }
 
     /**