X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fmodel-loader.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fcatalog%2FTestVnfCatalogArtifactHandler.java;h=cead699e9d5f3c0f5e0ebe7198aa413d39d28757;hp=b54bb20342fd2c94553a8a5d904c4a3037560ef5;hb=7e6fe8c29c5a5cfa5caf6ab47b30280e1fc20432;hpb=c5aea4a8bc398fc1c6220875e55b9520fd7f7524 diff --git a/src/test/java/org/onap/aai/modelloader/entity/catalog/TestVnfCatalogArtifactHandler.java b/src/test/java/org/onap/aai/modelloader/entity/catalog/TestVnfCatalogArtifactHandler.java index b54bb20..cead699 100644 --- a/src/test/java/org/onap/aai/modelloader/entity/catalog/TestVnfCatalogArtifactHandler.java +++ b/src/test/java/org/onap/aai/modelloader/entity/catalog/TestVnfCatalogArtifactHandler.java @@ -41,6 +41,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mockito; import org.onap.aai.modelloader.config.ModelLoaderConfig; import org.onap.aai.modelloader.entity.Artifact; +import org.onap.aai.modelloader.entity.ArtifactType; import org.onap.aai.modelloader.restclient.AaiRestClient; import org.onap.aai.restclient.client.OperationResult; @@ -80,6 +81,40 @@ public class TestVnfCatalogArtifactHandler { assertPutOperationsSucceeded(); } + @Test + public void testUpdateVnfImagesFromXml() throws Exception { + // GET operation + OperationResult mockGetResp = mock(OperationResult.class); + + // @formatter:off + when(mockGetResp.getResultCode()) + .thenReturn(Response.Status.OK.getStatusCode()) + .thenReturn(Response.Status.NOT_FOUND.getStatusCode()) + .thenReturn(Response.Status.NOT_FOUND.getStatusCode()) + .thenReturn(Response.Status.OK.getStatusCode()); + // @formatter:on + + when(mockRestClient.getResource(Mockito.anyString(), Mockito.anyString(), Mockito.any(MediaType.class))) + .thenReturn(mockGetResp); + mockPutOperations(); + + // Example VNF Catalog XML + VnfCatalogArtifactHandler handler = new VnfCatalogArtifactHandler(createConfig()); + assertThat( + handler.pushArtifacts(createVnfCatalogXmlArtifact(), "test", new ArrayList(), mockRestClient), + is(true)); + + // Only two of the VNF images should be pushed + ArgumentCaptor argument = ArgumentCaptor.forClass(String.class); + AaiRestClient client = Mockito.verify(mockRestClient, Mockito.times(2)); + client.putResource(Mockito.anyString(), argument.capture(), Mockito.anyString(), Mockito.any(MediaType.class)); + assertThat(argument.getAllValues().size(), is(2)); + assertThat(argument.getAllValues().get(0), containsString("5.2.5")); + assertThat(argument.getAllValues().get(0), containsString("VM00")); + assertThat(argument.getAllValues().get(1), containsString("5.2.4")); + assertThat(argument.getAllValues().get(1), containsString("VM00")); + } + private ModelLoaderConfig createConfig() { Properties configProperties = new Properties(); try { @@ -106,6 +141,20 @@ public class TestVnfCatalogArtifactHandler { return artifacts; } + /** + * Example VNF Catalog based on VNF_CATALOG XML + * + * @return test Artifacts + * @throws IOException + * @throws UnsupportedEncodingException + */ + private List createVnfCatalogXmlArtifact() throws IOException, UnsupportedEncodingException { + byte[] encoded = Files.readAllBytes(Paths.get("src/test/resources/xmlFiles/fortigate.xml")); + List artifacts = new ArrayList(); + artifacts.add(new VnfCatalogArtifact(ArtifactType.VNF_CATALOG_XML, new String(encoded, "utf-8"))); + return artifacts; + } + /** * Always return CREATED (success) for a PUT operation. */