diff options
author | Phillip Leigh <phillip.leigh@amdocs.com> | 2018-09-04 11:28:49 -0400 |
---|---|---|
committer | Phillip Leigh <phillip.leigh@amdocs.com> | 2018-09-05 15:34:37 -0400 |
commit | 797bf1d50236fddcbbb2ca091729e2e64b047f73 (patch) | |
tree | aad1b35fea66f18b71bf2b975d50883a927ac2fd /src/test | |
parent | ae69dc13d976b67c0278890b852444a134e23ca9 (diff) |
Obtain resouce-link based on service-instance
Issue-ID: LOG-461
Change-Id: Ieb3fb761be2237808ab9d709b3fadc7e241963de
Signed-off-by: Phillip Leigh <phillip.leigh@amdocs.com>
Diffstat (limited to 'src/test')
3 files changed, 97 insertions, 1 deletions
diff --git a/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/RestUtilTest.java b/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/RestUtilTest.java index 9757a2c..f8991c1 100644 --- a/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/RestUtilTest.java +++ b/src/test/java/org/onap/logging_analytics/pomba/pomba_aai_context_builder/RestUtilTest.java @@ -17,13 +17,49 @@ */ package org.onap.logging_analytics.pomba.pomba_aai_context_builder; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.okJson; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; - +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.UUID; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.restclient.client.RestClient; +import org.onap.pomba.contextbuilder.aai.Application; import org.onap.pomba.contextbuilder.aai.exception.AuditException; import org.onap.pomba.contextbuilder.aai.util.RestUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +import com.github.tomakehurst.wiremock.junit.WireMockRule; +@RunWith(SpringJUnit4ClassRunner.class) +@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class }) +@WebAppConfiguration +@SpringBootTest(classes = Application.class) +@TestPropertySource(properties = { "aai.serviceName=localhost","aai.servicePort=9808", "aai.httpProtocol=http" }) public class RestUtilTest { + @Autowired + private RestClient aaiClient; + @Autowired + private String aaiBaseUrl; + @Autowired + private String aaiPathToSearchNodeQuery; + @Autowired + private String aaiBasicAuthorization; + + @Rule + public WireMockRule aaiEnricherRule = new WireMockRule(wireMockConfig().port(9808)); @Test public void testValidateURL() { @@ -99,4 +135,48 @@ public class RestUtilTest { assertTrue(RestUtil.isEmptyJson("{}")); assertTrue(!RestUtil.isEmptyJson("{Not Empty}")); } + + @Test + public void testObtainResouceLinkBasedOnServiceInstanceFromAAI() throws Exception { + String transactionId = UUID.randomUUID().toString(); + String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json + String queryNodeUrl = aaiPathToSearchNodeQuery + serviceInstanceId; + addResponse(queryNodeUrl, "junit/queryNodeData-1.json", aaiEnricherRule); + + String resourceLinkUlr = RestUtil.obtainResouceLinkBasedOnServiceInstanceFromAAI(aaiClient, aaiBaseUrl, aaiPathToSearchNodeQuery, serviceInstanceId, transactionId, aaiBasicAuthorization); + + String returnedInstanceId = resourceLinkUlr.substring(resourceLinkUlr.lastIndexOf("/")+1).trim(); + assertEquals(serviceInstanceId, returnedInstanceId); + } + + @Test + public void testObtainResouceLinkBasedOnServiceInstanceFromAAI_nullResourceLink() throws Exception { + String transactionId = UUID.randomUUID().toString(); + String serviceInstanceId = "adc3cc2a-c73e-414f-8ddb-367de81300cb"; //match to the test data in junit/queryNodeData-1.json + String queryNodeUrl = aaiPathToSearchNodeQuery + serviceInstanceId; + addResponse(queryNodeUrl, "junit/queryNodeData-nullResourceLink.json", aaiEnricherRule); + + try { + RestUtil.obtainResouceLinkBasedOnServiceInstanceFromAAI(aaiClient, aaiBaseUrl, aaiPathToSearchNodeQuery, serviceInstanceId, transactionId, aaiBasicAuthorization); + } catch (AuditException e) { + assertTrue(e.getMessage().contains("JSONObject[\"resource-link\"] not found")); + } + } + + private void addResponse(String path, String classpathResource, WireMockRule thisMock) throws IOException { + String payload = readFully(ClassLoader.getSystemResourceAsStream(classpathResource)); + thisMock.stubFor(get(path).willReturn(okJson(payload))); + } + + private String readFully(InputStream in) throws IOException { + char[] cbuf = new char[1024]; + StringBuilder content = new StringBuilder(); + try (InputStreamReader reader = new InputStreamReader(in, "UTF-8")) { + int count; + while ((count = reader.read(cbuf)) >= 0) { + content.append(cbuf, 0, count); + } + } + return content.toString(); + } } diff --git a/src/test/resources/junit/queryNodeData-1.json b/src/test/resources/junit/queryNodeData-1.json new file mode 100644 index 0000000..501830b --- /dev/null +++ b/src/test/resources/junit/queryNodeData-1.json @@ -0,0 +1,8 @@ +{ + "result-data": [ + { + "resource-type": "service-instance", + "resource-link": "/aai/v11/business/customers/customer/DemoCust_651800ed-2a3c-45f5-b920-85c1ed155fc2/service-subscriptions/service-subscription/vFW/service-instances/service-instance/adc3cc2a-c73e-414f-8ddb-367de81300cb" + } + ] +} diff --git a/src/test/resources/junit/queryNodeData-nullResourceLink.json b/src/test/resources/junit/queryNodeData-nullResourceLink.json new file mode 100644 index 0000000..36eb667 --- /dev/null +++ b/src/test/resources/junit/queryNodeData-nullResourceLink.json @@ -0,0 +1,8 @@ +{ + "result-data": [ + { + "resource-type": "service-instance", + "related-link": "/aai/v11/network/vnfcs/vnfc/zrdm5aepdg01vmg003" + } + ] +} |