aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java
diff options
context:
space:
mode:
authorSonsino, Ofir (os0695) <os0695@intl.att.com>2018-07-10 14:20:54 +0300
committerSonsino, Ofir (os0695) <os0695@intl.att.com>2018-07-10 14:20:54 +0300
commitc72d565bb58226b20625b2bce5f0019046bee649 (patch)
tree8658e49595705b02e47ddc14afa20d6bb7123547 /vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java
parentef8a6b47847012fd59ea20da21d8d3d7c4a301ed (diff)
Merge 1806 code of vid-common
Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) <os0695@intl.att.com>
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java132
1 files changed, 132 insertions, 0 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java
new file mode 100644
index 000000000..04890e339
--- /dev/null
+++ b/vid-app-common/src/test/java/org/onap/vid/services/AaiResponseTranslatorTest.java
@@ -0,0 +1,132 @@
+package org.onap.vid.services;
+
+import org.codehaus.jackson.JsonNode;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.onap.vid.aai.AaiResponseTranslator;
+import org.onap.vid.aai.AaiResponseTranslator.PortMirroringConfigData;
+import org.onap.vid.aai.AaiResponseTranslator.PortMirroringConfigDataError;
+import org.onap.vid.aai.AaiResponseTranslator.PortMirroringConfigDataOk;
+import org.testng.annotations.Test;
+
+import java.io.IOException;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+@Test
+public class AaiResponseTranslatorTest {
+
+ private static final ObjectMapper objectMapper = new ObjectMapper();
+
+ @Test
+ public void extractPortMirroringConfigData_givenValidAaiResponse_yieldCloudRegionId() throws IOException {
+
+ final JsonNode aaiPayload = objectMapper.readTree("" +
+ "{" +
+ " \"results\": [{" +
+ " \"id\": \"2979590232\"," +
+ " \"node-type\": \"cloud-region\"," +
+ " \"url\": \"/aai/v12/cloud-infrastructure/cloud-regions/cloud-region/att-aic/SDNO-S-BcloudReg-E1802\"," +
+ " \"properties\": {" +
+ " \"cloud-owner\": \"att-aic\"," +
+ " \"cloud-region-id\": \"THE-EXPECTED-REGION-ID\"," +
+ " \"sriov-automation\": false," +
+ " \"resource-version\": \"1513631040564\"" +
+ " }" +
+ " }," +
+ " {" +
+ " \"id\": \"2979598424\"," +
+ " \"node-type\": \"generic-vnf\"," +
+ " \"url\": \"/aai/v12/network/generic-vnfs/generic-vnf/SOURCE-gVnf-E1802\"," +
+ " \"properties\": {" +
+ " \"vnf-id\": \"SOURCE-gVnf-E1802\"," +
+ " \"vnf-name\": \"SOURCE-vnf-SDNO\"," +
+ " \"vnf-type\": \"S-1-SDNO\"," +
+ " \"service-id\": \"a9a77d5a-123e-4-SDNO\"," +
+ " \"orchestration-status\": \"active\"," +
+ " \"in-maint\": true," +
+ " \"is-closed-loop-disabled\": false," +
+ " \"resource-version\": \"1513631043149\"" +
+ " }" +
+ " }" +
+ " ]" +
+ "}");
+
+ PortMirroringConfigData portMirroringConfigData =
+ new AaiResponseTranslator().extractPortMirroringConfigData(aaiPayload);
+
+ assertThat(portMirroringConfigData, is(instanceOf(PortMirroringConfigDataOk.class)));
+ assertThat(((PortMirroringConfigDataOk) portMirroringConfigData).getCloudRegionId(), is("THE-EXPECTED-REGION-ID"));
+
+ }
+
+ @Test
+ public void extractPortMirroringConfigData_givenKindOfValidAaiResponse_yieldCloudRegionId() throws IOException {
+ // some completley different response, but with
+ // the results[cloud-region]->properties->cloud-region-id
+
+ final JsonNode aaiPayload = objectMapper.readTree("" +
+ "{ " +
+ " \"results\": [{ " +
+ " \"node-type\": \"generic-vnf\", " +
+ " \"url\": \"configuration entries) so that git\" " +
+ " }, " +
+ " {}, " +
+ " { " +
+ " \"node-type\": \"cloud-region\", " +
+ " \"but it will not switch\": \"tip commits are reachable\", " +
+ " \"named\": [{ " +
+ " \"resource-version\": \"1513631040564\" " +
+ " }], " +
+ " \"properties\": { " +
+ " \"cloud-region-id\": \"THE-EXPECTED-REGION-ID\", " +
+ " \"oldbranch> will be renamed\": false " +
+ " } " +
+ " }, " +
+ " { " +
+ " \"node-type\": [\"generic-vnf\", \"can be overridden by using\"] " +
+ " } " +
+ " ] " +
+ "}");
+
+ PortMirroringConfigData portMirroringConfigData =
+ new AaiResponseTranslator().extractPortMirroringConfigData(aaiPayload);
+
+ assertThat(portMirroringConfigData, is(instanceOf(PortMirroringConfigDataOk.class)));
+ assertThat(((PortMirroringConfigDataOk) portMirroringConfigData).getCloudRegionId(), is("THE-EXPECTED-REGION-ID"));
+
+ }
+
+ public void extractPortMirroringConfigData_givenAaiResponseWithoutRegionIdName_yieldException() throws IOException {
+
+ final JsonNode aaiPayload = objectMapper.readTree("" +
+ "{" +
+ " \"results\": [{" +
+ " \"node-type\": \"cloud-region\"," +
+ " \"url\": \"/aai/v12/cloud-infrastructure/cloud-regions/cloud-region/att-aic/SDNO-S-BcloudReg-E1802\"," +
+ " \"properties\": {" +
+ " \"resource-version\": \"1513631040564\"" +
+ " }" +
+ " }" +
+ " ]" +
+ "}");
+
+ PortMirroringConfigData portMirroringConfigData =
+ new AaiResponseTranslator().extractPortMirroringConfigData(aaiPayload);
+
+ assertThat(portMirroringConfigData, is(instanceOf(PortMirroringConfigDataError.class)));
+ assertThat(((PortMirroringConfigDataError) portMirroringConfigData).getErrorDescription(),
+ containsString("The node-type 'cloud-region' does not contain the property 'cloud-region-id'"));
+ assertThat(((PortMirroringConfigDataError) portMirroringConfigData).getRawAaiResponse(),
+ containsString(aaiPayload.toString())
+ );
+
+ }
+
+ /*
+ More tests:
+ [x] cloud-region-id field is missing -- descriptive exception is thrown, including the problematic payload itself
+ [ ] cloud-region-id field is empty -- descriptive exception etc.
+ [ ] node-type=="cloud-region" entry is empty -- descriptive exception etc.
+ */
+}