Merge "JUnit tests for MsoMulticloudUtils"
[so.git] / common / src / test / java / org / onap / so / client / aai / AAIResourcesClientTest.java
index 32a9ca5..c63d602 100644 (file)
@@ -33,11 +33,17 @@ import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
 
+import javax.ws.rs.BadRequestException;
+
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.aai.domain.yang.Relationship;
 import org.onap.so.client.aai.entities.AAIEdgeLabel;
 import org.onap.so.client.aai.entities.AAIResultWrapper;
@@ -47,15 +53,31 @@ import org.onap.so.client.defaultproperties.DefaultAAIPropertiesImpl;
 
 import com.github.tomakehurst.wiremock.admin.NotFoundException;
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
+
+@RunWith(MockitoJUnitRunner.class)
 public class AAIResourcesClientTest {
 
 
        @Rule
-       public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(8443));
+       public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().dynamicPort());
        
        @Rule
        public ExpectedException thrown = ExpectedException.none();
        
+       
+       @Spy
+       public AAIClient client;
+       
+       @InjectMocks
+       public AAIResourcesClient aaiClient = new AAIResourcesClient();
+       
+       private String AAI_JSON_FILE_LOCATION = "src/test/resources/__files/aai/query/";
+
+       @Before
+       public void beforeTest() {
+               doReturn(new DefaultAAIPropertiesImpl(wireMockRule.port())).when(client).getRestProperties();
+       }
+       
        @Test
        public void verifyNotExists() {
                AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
@@ -66,7 +88,7 @@ public class AAIResourcesClientTest {
                                        .withHeader("Content-Type", "text/plain")
                                        .withBody("hello")
                                        .withStatus(404)));
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                boolean result = client.exists(path);
                assertEquals("path not found", false, result);
        }
@@ -87,7 +109,7 @@ public class AAIResourcesClientTest {
                                .willReturn(
                                        aResponse()
                                        .withStatus(204)));
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                client.delete(path);
        }
        
@@ -102,7 +124,7 @@ public class AAIResourcesClientTest {
                                        .withHeader("Content-Type", "application/json")
                                        .withBodyFile("aai/resources/mockObject.json")
                                        .withStatus(200)));
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                client.get(path);
        }
        
@@ -118,7 +140,7 @@ public class AAIResourcesClientTest {
                                        .withStatus(200)));
                
                AAIResourceUri pathClone = path.clone();
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                client.connect(path, path2);
                assertEquals("uri not modified", pathClone.build().toString(), path.build().toString());
        }
@@ -128,14 +150,14 @@ public class AAIResourcesClientTest {
                AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test2");
                AAIResourceUri path2 = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test3");
                
-               wireMockRule.stubFor(post(
+               wireMockRule.stubFor(delete(
                                urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build() + "/relationship-list/relationship"))
                                .willReturn(
                                        aResponse()
                                        .withStatus(204)));
                
                AAIResourceUri pathClone = path.clone();
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                client.disconnect(path, path2);
                assertEquals("uri not modified", pathClone.build().toString(), path.build().toString());
        }
@@ -150,7 +172,7 @@ public class AAIResourcesClientTest {
                                        aResponse()
                                        .withStatus(200)));
                
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
 
                client.update(path, "{}");
        }
@@ -165,7 +187,7 @@ public class AAIResourcesClientTest {
                                        .withHeader("Content-Type", "text/plain")
                                        .withBody("hello")
                                        .withStatus(404)));
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                AAIResultWrapper result = client.get(path);
                assertEquals("is empty", true, result.isEmpty());
        }
@@ -180,15 +202,32 @@ public class AAIResourcesClientTest {
                                        .withHeader("Content-Type", "text/plain")
                                        .withBody("hello")
                                        .withStatus(404)));
-               AAIResourcesClient client= createClient();
+               AAIResourcesClient client= aaiClient;
                thrown.expect(NotFoundException.class);
                thrown.expectMessage(containsString(path.build() + " not found in A&AI"));
                AAIResultWrapper result = client.get(path, NotFoundException.class);
        }
        
+       @Test
+       public void verifyFailedCallException() {
+               AAIResourceUri path = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
+               wireMockRule.stubFor(get(
+                               urlPathEqualTo("/aai/" + AAIVersion.LATEST + path.build()))
+                               .willReturn(
+                                       aResponse()
+                                       .withHeader("Content-Type", "text/plain")
+                                       .withBodyFile("aai/error-message.json")
+                                       .withStatus(400)));
+               AAIResourcesClient client= aaiClient;
+               
+               thrown.expect(BadRequestException.class);
+               thrown.expectMessage(containsString("Invalid input performing PUT on url (msg=Precondition Required:resource-version not passed for update of url"));
+               AAIResultWrapper result = client.get(path);
+       }
+       
        @Test
        public void buildRelationshipTest() {
-               AAIResourcesClient client = createClient();
+               AAIResourcesClient client = aaiClient;
                AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test");
                Relationship relationship = new Relationship();
                relationship.setRelatedLink(uri.build().toString());
@@ -200,10 +239,5 @@ public class AAIResourcesClientTest {
                assertThat("expect equal has label", actual, sameBeanAs(relationship));
                
        }
-       
-       private AAIResourcesClient createClient() {
-               AAIResourcesClient client = spy(new AAIResourcesClient());
-               doReturn(new DefaultAAIPropertiesImpl()).when(client).getRestProperties();
-               return client;
-       }
+
 }