Merge 'origin/casablanca' into master
[so.git] / adapters / mso-catalog-db-adapter / src / test / java / org / onap / so / db / catalog / client / CatalogDbClientTest.java
index c85a4c2..4479e1b 100644 (file)
 
 package org.onap.so.db.catalog.client;
 
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
 import java.util.List;
 import java.util.UUID;
 
+import javax.ws.rs.core.UriBuilder;
+
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -33,6 +39,7 @@ import org.onap.so.db.catalog.beans.CloudIdentity;
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.CloudifyManager;
 import org.onap.so.db.catalog.beans.ExternalServiceToInternalService;
+import org.onap.so.db.catalog.beans.HomingInstance;
 import org.onap.so.db.catalog.beans.InstanceGroup;
 import org.onap.so.db.catalog.beans.NetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.ServerType;
@@ -44,25 +51,31 @@ import org.onap.so.db.catalog.beans.VnfComponentsRecipe;
 import org.onap.so.db.catalog.beans.VnfRecipe;
 import org.onap.so.db.catalog.beans.VnfResource;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
+import org.onap.so.db.catalog.beans.ExternalServiceToInternalService;
+import org.onap.so.db.catalog.beans.macro.NorthBoundRequest;
 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.embedded.LocalServerPort;
+import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = CatalogDBApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 @ActiveProfiles("test")
 public class CatalogDbClientTest {
     public static final String MTN13 = "mtn13";
+    
     @LocalServerPort
     private int port;
 
     @Value("${mso.db.auth}")
     private String msoAdaptersAuth;
-
+       
     @Autowired
     CatalogDbClientPortChanger client;
 
@@ -414,6 +427,80 @@ public class CatalogDbClientTest {
         Assert.assertEquals("RANDOMID", getCloudSite.getIdentityServiceId());
     }
 
+    @Test
+    public void testGetHomingInstance() {
+        HomingInstance homingInstance = client.getHomingInstance("5df8b6de-2083-11e7-93ae-92361f232671");
+        Assert.assertNotNull(homingInstance);
+        Assert.assertNotNull(homingInstance.getCloudOwner());
+        Assert.assertNotNull(homingInstance.getCloudRegionId());
+        Assert.assertNotNull(homingInstance.getOofDirectives());
+    }
+
+    @Test
+    public void testPostHomingInstance() {
+        CatalogDbClientPortChanger localClient = new CatalogDbClientPortChanger("http://localhost:" + client.wiremockPort, msoAdaptersAuth, client.wiremockPort);
+        HomingInstance homingInstance = new HomingInstance();
+        homingInstance.setServiceInstanceId("5df8d6be-2083-11e7-93ae-92361f232671");
+        homingInstance.setCloudOwner("CloudOwner-1");
+        homingInstance.setCloudRegionId("CloudRegionOne");
+        homingInstance.setOofDirectives("{\n" +
+                "\"directives\": [\n" +
+                "{\n" +
+                "\"directives\": [\n" +
+                "{\n" +
+                "\"attributes\": [\n" +
+                "{\n" +
+                "\"attribute_value\": \"onap.hpa.flavor31\",\n" +
+                "\"attribute_name\": \"firewall_flavor_name\"\n" +
+                "}\n" +
+                "],\n" +
+                "\"type\": \"flavor_directives\"\n" +
+                "}\n" +
+                "],\n" +
+                "\"type\": \"vnfc\",\n" +
+                "\"id\": \"vfw\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"directives\": [\n" +
+                "{\n" +
+                "\"attributes\": [\n" +
+                "{\n" +
+                "\"attribute_value\": \"onap.hpa.flavor32\",\n" +
+                "\"attribute_name\": \"packetgen_flavor_name\"\n" +
+                "}\n" +
+                "],\n" +
+                "\"type\": \"flavor_directives\"\n" +
+                "}\n" +
+                "],\n" +
+                "\"type\": \"vnfc\",\n" +
+                "\"id\": \"vgenerator\"\n" +
+                "},\n" +
+                "{\n" +
+                "\"directives\": [\n" +
+                "{\n" +
+                "\"attributes\": [\n" +
+                "{\n" +
+                "\"attribute_value\": \"onap.hpa.flavor31\",\n" +
+                "\"attribute_name\": \"sink_flavor_name\"\n" +
+                "}\n" +
+                "],\n" +
+                "\"type\": \"flavor_directives\"\n" +
+                "}\n" +
+                "],\n" +
+                "\"type\": \"vnfc\",\n" +
+                "\"id\": \"vsink\"\n" +
+                "}\n" +
+                "]\n" +
+                "}");
+        localClient.postHomingInstance(homingInstance);
+        HomingInstance getHomingInstance = this.client.getHomingInstance("5df8d6be-2083-11e7-93ae-92361f232671");
+        Assert.assertNotNull(getHomingInstance);
+        Assert.assertNotNull(getHomingInstance.getCloudRegionId());
+        Assert.assertNotNull(getHomingInstance.getCloudOwner());
+        Assert.assertEquals("CloudOwner-1", getHomingInstance.getCloudOwner());
+        Assert.assertEquals("CloudRegionOne", getHomingInstance.getCloudRegionId());
+    }
+
    @Test
     public void testGetServiceByModelName() {
         Service service = client.getServiceByModelName("MSOTADevInfra_Test_Service");
@@ -446,6 +533,21 @@ public class CatalogDbClientTest {
         Assert.assertNull(service);
     }
 
+    @Test
+    public void testGetNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner(){
+       NorthBoundRequest northBoundRequest = new NorthBoundRequest();
+       northBoundRequest.setAction("createService");
+       northBoundRequest.setRequestScope("service");
+       northBoundRequest.setIsAlacarte(true);
+       northBoundRequest.setCloudOwner("my-custom-cloud-owner");
+       client.getNorthBoundRequestByActionAndIsALaCarteAndRequestScopeAndCloudOwner("createService", "service", true, "my-custom-cloud-owner");
+       Assert.assertNotNull(northBoundRequest);
+       Assert.assertEquals("createService",northBoundRequest.getAction());
+       Assert.assertEquals("service",northBoundRequest.getRequestScope());
+       Assert.assertEquals(true,northBoundRequest.getIsAlacarte() );
+       Assert.assertEquals("my-custom-cloud-owner", northBoundRequest.getCloudOwner());
+    }
+   
     @Test
     public void testFindServiceRecipeByActionAndServiceModelUUID() {
         ServiceRecipe serviceRecipe = client.findServiceRecipeByActionAndServiceModelUUID("createInstance","4694a55f-58b3-4f17-92a5-796d6f5ffd0d" );
@@ -462,6 +564,15 @@ public class CatalogDbClientTest {
         Assert.assertNull(serviceRecipe);
     }
 
+    @Test
+    public void testFindExternalToInternalServiceByServiceName() {
+        ExternalServiceToInternalService externalServiceToInternalService = client.findExternalToInternalServiceByServiceName("MySpecialServiceName");
+        Assert.assertNotNull(externalServiceToInternalService);
+        Assert.assertNotNull(externalServiceToInternalService.getServiceName());
+        Assert.assertNotNull(externalServiceToInternalService.getServiceModelUUID());
+        Assert.assertEquals("MySpecialServiceName", externalServiceToInternalService.getServiceName());
+    }
+
     @Test
     public void testFindExternalToInternalServiceByServiceNameNotFound() {
         ExternalServiceToInternalService externalServiceToInternalService = client.findExternalToInternalServiceByServiceName("Not_Found");