Merge "Add WorkflowSpecification Beans for APIH"
[so.git] / adapters / mso-catalog-db-adapter / src / test / java / org / onap / so / adapters / catalogdb / catalogrest / CatalogDBRestTest.java
index c3159f0..a97029e 100644 (file)
 package org.onap.so.adapters.catalogdb.catalogrest;
 
 import static org.junit.Assert.*;
+import static org.onap.so.logger.MdcConstants.ENDTIME;
+import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
+import static org.onap.so.logger.MdcConstants.PARTNERNAME;
+import static org.onap.so.logger.MdcConstants.RESPONSECODE;
+import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
+import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
+import static org.onap.so.logger.MdcConstants.STATUSCODE;
 
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
@@ -34,12 +43,12 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.adapters.catalogdb.CatalogDBApplication;
 
-import org.onap.so.logger.MsoLogger;
 import org.skyscreamer.jsonassert.JSONAssert;
 import org.skyscreamer.jsonassert.JSONCompareMode;
-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.web.client.TestRestTemplate;
 import org.springframework.http.HttpEntity;
@@ -64,6 +73,8 @@ public class CatalogDBRestTest {
 
        private static final String ECOMP_MSO_CATALOG_V2_SERVICE_ALLOTTED_RESOURCES = "ecomp/mso/catalog/v2/serviceAllottedResources";
 
+       private static final String ECOMP_MSO_CATALOG_V2_RESOURCE_RECEIPE = "ecomp/mso/catalog/v2/resourceRecipe";
+
        private static final String ECOMP_MSO_CATALOG_V2_SERVICE_NETWORKS = "ecomp/mso/catalog/v2/serviceNetworks";
 
        private static final String ECOMP_MSO_CATALOG_V2_SERVICE_VNFS = "ecomp/mso/catalog/v2/serviceVnfs";
@@ -93,6 +104,8 @@ public class CatalogDBRestTest {
        private final String expectedAllottedResponse = "{\r\n\"serviceAllottedResources\": [\r\n{\r\n\"modelInfo\": {\r\n\"modelName\": \"Tunnel_Xconn\",\r\n\"modelUuid\": \"f6b7d4c6-e8a4-46e2-81bc-31cad5072842\",\r\n\"modelInvariantUuid\": \"b7a1b78e-6b6b-4b36-9698-8c9530da14af\",\r\n\"modelVersion\": \"1.0\",\r\n\"modelCustomizationUuid\": \"367a8ba9-057a-4506-b106-fbae818597c6\",\r\n\"modelInstanceName\": \"Sec_Tunnel_Xconn 11\"\r\n},\r\n\"toscaNodeType\": \"\",\r\n\"allottedResourceType\": \"\",\r\n\"allottedResourceRole\": null,\r\n\"providingServiceModelName\": null,\r\n\"providingServiceModelInvariantUuid\": null,\r\n\"providingServiceModelUuid\": null,\r\n\"nfFunction\": null,\r\n\"nfType\": null,\r\n\"nfRole\": null,\r\n\"nfNamingCode\": null\r\n}\r\n]\r\n}";
        
        private final String serviceUUID = "5df8b6de-2083-11e7-93ae-92361f002671";
+
+       private final String arResourceUUID = "25e2d69b-3b22-47b8-b4c9-7b14fd4a80df";
        
        private final String serviceInvariantUUID = "9647dfc4-2083-11e7-93ae-92361f002671";
        
@@ -108,6 +121,27 @@ public class CatalogDBRestTest {
                                HttpMethod.GET, entity, String.class);
                
                assertEquals(Response.Status.OK.getStatusCode(),response.getStatusCode().value());
+        for(ILoggingEvent logEvent : TestAppender.events)
+            if(logEvent.getLoggerName().equals("org.onap.so.logging.spring.interceptor.LoggingInterceptor") &&
+                       logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")
+                    ){
+                Map<String,String> mdc = logEvent.getMDCPropertyMap();
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INSTANCE_UUID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("",mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("/manage/health",mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+                assertEquals("INPROGRESS",mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+            }else if(logEvent.getLoggerName().equals("org.onap.so.logging.spring.interceptor.LoggingInterceptor") &&
+                    logEvent.getMarker()!= null && logEvent.getMarker().getName().equals("EXIT")){
+                Map<String,String> mdc = logEvent.getMDCPropertyMap();
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("200",mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
+                assertEquals("",mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("/manage/health",mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+                assertEquals("COMPLETED",mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+            }
        }
        
        /* Service Resources Endpoint */
@@ -626,6 +660,42 @@ public class CatalogDBRestTest {
                assertEquals(Response.Status.OK.getStatusCode(),response.getStatusCode().value());
                JSONAssert.assertEquals(expectedAllottedResponse, response.getBody().toString(), false);
        }
+
+       @Test
+       public void testResourceReceipe() throws JSONException {
+               String expectedResourceRecipe = "{\"orchestrationUri\":\"/mso/async/services/CreateSDNCNetworkResource\",\"action\":\"createInstance\",\"description\":\"sotnvpnattachmentvF\",\"id\":\"1\",\"recipeTimeout\":\"180\",\"paramXSD\":\"\"}";
+
+               HttpEntity<String> entity = new HttpEntity<String>(null, headers);
+               headers.set("Accept", MediaType.APPLICATION_JSON);
+
+               UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(ECOMP_MSO_CATALOG_V2_RESOURCE_RECEIPE))
+                               .queryParam("resourceModelUuid", arResourceUUID)
+                               .queryParam("action", "createInstance");
+
+               ResponseEntity<String> response = restTemplate.exchange(
+                               builder.toUriString(),
+                               HttpMethod.GET, entity, String.class);
+
+               assertEquals(Response.Status.OK.getStatusCode(),response.getStatusCode().value());
+               JSONAssert.assertEquals(expectedResourceRecipe, response.getBody().toString(), false);
+       }
+
+       @Test
+       public void testResourceReceipeNotMatched() throws JSONException {
+
+               HttpEntity<String> entity = new HttpEntity<String>(null, headers);
+               headers.set("Accept", MediaType.APPLICATION_JSON);
+
+               UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(ECOMP_MSO_CATALOG_V2_RESOURCE_RECEIPE))
+                               .queryParam("resourceModelUuid", arResourceUUID)
+                               .queryParam("action", "invalid_action");
+
+               ResponseEntity<String> response = restTemplate.exchange(
+                               builder.toUriString(),
+                               HttpMethod.GET, entity, String.class);
+
+               assertEquals(Response.Status.NOT_FOUND.getStatusCode(),response.getStatusCode().value());
+       }
        
        @Test
        public void testGetServiceAllottedResourcesByServiceModelInvariantUuid() throws JSONException {
@@ -767,24 +837,24 @@ public class CatalogDBRestTest {
                        logEvent.getMarker().getName().equals("ENTRY")
                        ){
                    Map<String,String> mdc = logEvent.getMDCPropertyMap();
-                   assertNotNull(mdc.get(MsoLogger.BEGINTIME));
-                   assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
-                   assertNotNull(mdc.get(MsoLogger.INVOCATION_ID));               
-                   assertEquals("UNKNOWN",mdc.get(MsoLogger.PARTNERNAME));
-                   assertEquals("v2/vfModules",mdc.get(MsoLogger.SERVICE_NAME));
-                   assertEquals("INPROGRESS",mdc.get(MsoLogger.STATUSCODE));
+                   assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+                   assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
+                   assertNotNull(mdc.get(INVOCATION_ID));
+                   assertEquals("UNKNOWN",mdc.get(PARTNERNAME));
+                   assertEquals("v2/vfModules",mdc.get(SERVICE_NAME));
+                   assertEquals("INPROGRESS",mdc.get(STATUSCODE));
                }else if(logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging") &&
                     logEvent.getMarker().getName().equals("EXIT")){
                    Map<String,String> mdc = logEvent.getMDCPropertyMap();
-                assertNotNull(mdc.get(MsoLogger.BEGINTIME));
-                assertNotNull(mdc.get(MsoLogger.ENDTIME));
-                assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
-                assertNotNull(mdc.get(MsoLogger.INVOCATION_ID));
-                assertEquals("500",mdc.get(MsoLogger.RESPONSECODE));
-                assertEquals("UNKNOWN",mdc.get(MsoLogger.PARTNERNAME));
-                assertEquals("v2/vfModules",mdc.get(MsoLogger.SERVICE_NAME));
-                assertEquals("ERROR",mdc.get(MsoLogger.STATUSCODE));
-                assertNotNull(mdc.get(MsoLogger.RESPONSEDESC));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
+                assertNotNull(mdc.get(INVOCATION_ID));
+                assertEquals("500",mdc.get(RESPONSECODE));
+                assertEquals("UNKNOWN",mdc.get(PARTNERNAME));
+                assertEquals("v2/vfModules",mdc.get(SERVICE_NAME));
+                assertEquals("ERROR",mdc.get(STATUSCODE));
+                assertNotNull(mdc.get(RESPONSEDESC));
                }
        }