aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authormark.j.leonard <mark.j.leonard@gmail.com>2018-11-22 12:24:44 +0000
committermark.j.leonard <mark.j.leonard@gmail.com>2018-11-22 12:24:44 +0000
commit36606e8fbcae1248aff9740717a666120cf9d8a0 (patch)
tree121e216b75a60e485aafebc484dbc982d1d6f42b /src/test
parent3452a390f7f04f4873a47718e2d8e558e92ce03a (diff)
Refactor Instance Group processing
Minor refactoring and reformatting of Java code using Eclipse. Add private method mergeProperties() to replace duplicated code logic for populating the Group model. Change-Id: I1360bbbf5b065149028a94392dd530af9c9153e8 Issue-ID: AAI-1884 Signed-off-by: mark.j.leonard <mark.j.leonard@gmail.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java184
-rw-r--r--src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java349
2 files changed, 266 insertions, 267 deletions
diff --git a/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java b/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java
index 822cda5..6cf6d31 100644
--- a/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java
+++ b/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java
@@ -34,7 +34,6 @@ import org.junit.Test;
import org.mockito.Mockito;
import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil;
import org.onap.aai.babel.xml.generator.model.InstanceGroup;
-import org.onap.aai.babel.xml.generator.model.Model;
import org.onap.aai.babel.xml.generator.model.Resource;
import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
import org.onap.sdc.toscaparser.api.Group;
@@ -47,97 +46,94 @@ import org.onap.sdc.toscaparser.api.SubstitutionMappings;
public class TestArtifactGeneratorToscaParser {
- private static final String TEST_UUID = "1234";
-
- /**
- * Process a dummy Node Template object for a Service. A WARNING should be logged for the missing metadata.
- */
- @Test
- public void testMissingServiceData() {
- List<NodeTemplate> nodeTemplateList = Collections.singletonList(buildNodeTemplate("name", "BlockStorage"));
- ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(null);
- parser.processServiceTosca(null, Collections.emptyMap(), nodeTemplateList);
- parser.processResourceToscas(nodeTemplateList, null);
- }
-
- /**
- * Process a dummy Group object for a Service Resource.
- */
- @Test
- public void testInstanceGroups() {
- final String instanceGroupType = "org.openecomp.groups.ResourceInstanceGroup";
- Properties props = new Properties();
- props.put("AAI.instance-group-types", instanceGroupType);
- WidgetConfigurationUtil.setFilterConfig(props);
-
- ISdcCsarHelper helper = Mockito.mock(ISdcCsarHelper.class);
- NodeTemplate serviceNodeTemplate = Mockito.mock(NodeTemplate.class);
- SubstitutionMappings sm = Mockito.mock(SubstitutionMappings.class);
-
- Mockito.when(serviceNodeTemplate.getSubMappingToscaTemplate()).thenReturn(sm);
-
- NodeTemplate serviceNode = buildNodeTemplate("service", "org.openecomp.resource.cr.a-collection-resource");
- Mockito.when(helper.getNodeTemplateByName(serviceNode.getName())).thenReturn(serviceNodeTemplate);
-
- ArrayList<Group> groups = new ArrayList<>();
- groups.add(buildGroup("group", instanceGroupType));
- Mockito.when(helper.getGroupsOfOriginOfNodeTemplate(serviceNode)).thenReturn(groups);
-
- ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(helper);
- Model resourceModel = new InstanceGroup();
- List<Resource> resources = parser.processInstanceGroups(resourceModel, serviceNode);
-
- assertThat(resources.size(), is(1));
- Resource resource = resources.get(0);
- assertThat(resource.getModelNameVersionId(), is(equalTo(TEST_UUID)));
- }
-
- private NodeTemplate buildNodeTemplate(String name, String type) {
- LinkedHashMap<String, Object> nodeTemplateMap = new LinkedHashMap<>();
- nodeTemplateMap.put(name, buildMap("type", type));
- nodeTemplateMap.put(type, buildNodeTemplateCustomDefs());
- return new NodeTemplate(name, nodeTemplateMap, nodeTemplateMap, null, null);
- }
-
- private LinkedHashMap<String, Object> buildNodeTemplateCustomDefs() {
- LinkedHashMap<String, Object> customDefs = buildCustomDefs();
- customDefs.put("attributes", null);
- customDefs.put("requirements", null);
- customDefs.put("capabilities", null);
- customDefs.put("artifacts", null);
- return customDefs;
- }
-
- private Group buildGroup(String name, String type) {
- LinkedHashMap<String, Object> template = new LinkedHashMap<>();
- template.put("type", type);
- template.put("metadata", new LinkedHashMap<>());
- template.put("properties", buildMap("UUID", TEST_UUID));
- LinkedHashMap<String, Object> customDefMap = buildMap(name, template);
- customDefMap.put(type, buildGroupCustomDefs());
- return new Group(name, template, null, customDefMap);
- }
-
- private LinkedHashMap<String, Object> buildGroupCustomDefs() {
- LinkedHashMap<String, Object> customDefs = buildCustomDefs();
- customDefs.put("members", null);
- return customDefs;
- }
-
- private LinkedHashMap<String, Object> buildCustomDefs() {
- LinkedHashMap<String, Object> customDefs = new LinkedHashMap<>();
- customDefs.put("derived_from", null);
- customDefs.put("metadata", null);
- customDefs.put("version", null);
- customDefs.put("description", null);
- customDefs.put("interfaces", null);
- customDefs.put("properties", buildMap("UUID", buildMap("type", "java.lang.String")));
- return customDefs;
- }
-
- private LinkedHashMap<String, Object> buildMap(String key, Object value) {
- LinkedHashMap<String, Object> map = new LinkedHashMap<>();
- map.put(key, value);
- return map;
- }
+ private static final String TEST_UUID = "1234";
+
+ /**
+ * Process a dummy Node Template object for a Service. A WARNING should be logged for the missing metadata.
+ */
+ @Test
+ public void testMissingServiceData() {
+ List<NodeTemplate> nodeTemplateList = Collections.singletonList(buildNodeTemplate("name", "BlockStorage"));
+ ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(null);
+ parser.processServiceTosca(null, Collections.emptyMap(), nodeTemplateList);
+ parser.processResourceToscas(nodeTemplateList, null);
+ }
+
+ /**
+ * Process a dummy Group object for a Service Resource.
+ */
+ @Test
+ public void testInstanceGroups() {
+ final String instanceGroupType = "org.openecomp.groups.ResourceInstanceGroup";
+ Properties props = new Properties();
+ props.put("AAI.instance-group-types", instanceGroupType);
+ WidgetConfigurationUtil.setFilterConfig(props);
+
+ ISdcCsarHelper helper = Mockito.mock(ISdcCsarHelper.class);
+ SubstitutionMappings sm = Mockito.mock(SubstitutionMappings.class);
+
+ NodeTemplate serviceNode = buildNodeTemplate("service", "org.openecomp.resource.cr.a-collection-resource");
+ serviceNode.setSubMappingToscaTemplate(sm);
+ Mockito.when(helper.getNodeTemplateByName(serviceNode.getName())).thenReturn(serviceNode);
+
+ ArrayList<Group> groups = new ArrayList<>();
+ groups.add(buildGroup("group", instanceGroupType));
+ Mockito.when(helper.getGroupsOfOriginOfNodeTemplate(serviceNode)).thenReturn(groups);
+
+ ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(helper);
+ List<Resource> resources = parser.processInstanceGroups(new InstanceGroup(), serviceNode);
+
+ assertThat(resources.size(), is(1));
+ Resource resource = resources.get(0);
+ assertThat(resource.getModelNameVersionId(), is(equalTo(TEST_UUID)));
+ }
+
+ private NodeTemplate buildNodeTemplate(String name, String type) {
+ LinkedHashMap<String, Object> nodeTemplateMap = new LinkedHashMap<>();
+ nodeTemplateMap.put(name, buildMap("type", type));
+ nodeTemplateMap.put(type, buildNodeTemplateCustomDefs());
+ return new NodeTemplate(name, nodeTemplateMap, nodeTemplateMap, null, null);
+ }
+
+ private LinkedHashMap<String, Object> buildNodeTemplateCustomDefs() {
+ LinkedHashMap<String, Object> customDefs = buildCustomDefs();
+ customDefs.put("attributes", null);
+ customDefs.put("requirements", null);
+ customDefs.put("capabilities", null);
+ customDefs.put("artifacts", null);
+ return customDefs;
+ }
+
+ private Group buildGroup(String name, String type) {
+ LinkedHashMap<String, Object> template = new LinkedHashMap<>();
+ template.put("type", type);
+ template.put("metadata", new LinkedHashMap<>());
+ template.put("properties", buildMap("UUID", TEST_UUID));
+ LinkedHashMap<String, Object> customDefMap = buildMap(name, template);
+ customDefMap.put(type, buildGroupCustomDefs());
+ return new Group(name, template, null, customDefMap);
+ }
+
+ private LinkedHashMap<String, Object> buildGroupCustomDefs() {
+ LinkedHashMap<String, Object> customDefs = buildCustomDefs();
+ customDefs.put("members", null);
+ return customDefs;
+ }
+
+ private LinkedHashMap<String, Object> buildCustomDefs() {
+ LinkedHashMap<String, Object> customDefs = new LinkedHashMap<>();
+ customDefs.put("derived_from", null);
+ customDefs.put("metadata", null);
+ customDefs.put("version", null);
+ customDefs.put("description", null);
+ customDefs.put("interfaces", null);
+ customDefs.put("properties", buildMap("UUID", buildMap("type", "java.lang.String")));
+ return customDefs;
+ }
+
+ private LinkedHashMap<String, Object> buildMap(String key, Object value) {
+ LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+ map.put(key, value);
+ return map;
+ }
}
diff --git a/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java b/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java
index 8d10412..297bb4d 100644
--- a/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java
+++ b/src/test/java/org/onap/aai/babel/service/CsarToXmlConverterTest.java
@@ -53,177 +53,180 @@ import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException;
*/
public class CsarToXmlConverterTest {
- private static final String ARTIFACT_GENERATOR_CONFIG = "artifact-generator.properties";
- private static final String FILTER_TYPES_CONFIG = "filter-types.properties";
-
- private static final String INCORRECT_CSAR_NAME = "the_name_of_the_csar_file.csar";
- private static final String SERVICE_VERSION = "1.0";
-
- static {
- if (System.getProperty("APP_HOME") == null) {
- System.setProperty("APP_HOME", ".");
- }
- }
-
- // The class to be tested.
- private CsarToXmlConverter converter;
-
- @Rule
- public ExpectedException exception = ExpectedException.none();
-
- @Before
- public void setup() {
- System.setProperty(ArtifactGeneratorToscaParser.PROPERTY_ARTIFACT_GENERATOR_CONFIG_FILE,
- new ArtifactTestUtils().getResourcePath(ARTIFACT_GENERATOR_CONFIG));
-
- System.setProperty(ArtifactGeneratorToscaParser.PROPERTY_GROUP_FILTERS_CONFIG_FILE,
- new ArtifactTestUtils().getResourcePath(FILTER_TYPES_CONFIG));
-
- converter = new CsarToXmlConverter();
- }
-
- @After
- public void tearDown() {
- converter = null;
- }
-
- @Test(expected = NullPointerException.class)
- public void testNullArtifactSupplied() throws CsarConverterException {
- converter.generateXmlFromCsar(null, null, null);
- }
-
- @Test(expected = NullPointerException.class)
- public void testMissingName() throws CsarConverterException, IOException {
- converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), null, null);
- }
-
- @Test(expected = NullPointerException.class)
- public void testMissingVersion() throws CsarConverterException, IOException {
- converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), INCORRECT_CSAR_NAME, null);
- }
-
- @Test(expected = CsarConverterException.class)
- public void testNoPayloadExists() throws CsarConverterException {
- converter.generateXmlFromCsar(new byte[0], INCORRECT_CSAR_NAME, SERVICE_VERSION);
- }
-
- @Test(expected = CsarConverterException.class)
- public void testCsarFileHasNoYmlFiles() throws CsarConverterException, IOException {
- converter.generateXmlFromCsar(CsarTest.NO_YAML_FILES.getContent(), CsarTest.NO_YAML_FILES.getName(),
- SERVICE_VERSION);
- }
-
- /**
- * Test that an Exception is thrown when the Artifact Generator properties are not present.
- *
- * @throws CsarConverterException if there is an error either extracting the YAML files or generating XML artifacts
- * @throws IOException if an I/O exception occurs loading the test CSAR file
- * @throws IOException
- * @throws XmlArtifactGenerationException
- * @throws CsarConverterException
- */
- @Test
- public void testArtifactGeneratorConfigMissing() throws CsarConverterException, IOException {
- exception.expect(CsarConverterException.class);
- exception.expectMessage("Cannot generate artifacts. System property artifactgenerator.config not configured");
-
- // Unset the required system property
- System.clearProperty(ArtifactGeneratorToscaParser.PROPERTY_ARTIFACT_GENERATOR_CONFIG_FILE);
- converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), CsarTest.SD_WAN_CSAR_FILE.getName(),
- SERVICE_VERSION);
- }
-
- /**
- * Test that an Exception is thrown when the Artifact Generator's Group Filter properties are not present.
- *
- * @throws IOException
- * @throws XmlArtifactGenerationException
- * @throws CsarConverterException
- */
- @Test
- public void generateXmlFromCsarFilterTypesSystemPropertyNotSet()
- throws IOException, XmlArtifactGenerationException, CsarConverterException {
- exception.expect(CsarConverterException.class);
- exception.expectMessage("Cannot generate artifacts. System property groupfilter.config not configured");
-
- // Unset the required system property
- System.clearProperty(ArtifactGeneratorToscaParser.PROPERTY_GROUP_FILTERS_CONFIG_FILE);
- converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), CsarTest.SD_WAN_CSAR_FILE.getName(),
- SERVICE_VERSION);
- }
-
- @Test
- public void testServiceMetadataMissing()
- throws IOException, XmlArtifactGenerationException, CsarConverterException {
- converter.generateXmlFromCsar(CsarTest.MISSING_METADATA_CSAR.getContent(),
- CsarTest.MISSING_METADATA_CSAR.getName(), SERVICE_VERSION);
- }
-
- @Test
- public void generateXmlFromSdWanCsar() throws IOException, CsarConverterException {
- List<String> filesToLoad = new ArrayList<>();
- filesToLoad.add("AAI-SD-WAN-Service-Test-service-1.0.xml");
- filesToLoad.add("AAI-SdWanTestVsp..DUMMY..module-0-resource-2.xml");
- filesToLoad.add("AAI-Tunnel_XConnTest-resource-2.0.xml");
- filesToLoad.add("AAI-SD-WAN-Test-VSP-resource-1.0.xml");
- assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.SD_WAN_CSAR_FILE);
- }
-
- @Test
- public void generateXmlFromNetworkCollectionCsar() throws IOException, CsarConverterException {
- List<String> filesToLoad = new ArrayList<>();
- filesToLoad.add("AAI-TEST SVC_1-service-1.0.xml");
- filesToLoad.add("AAI-TEST CR_1-resource-7.0.xml");
- filesToLoad.add("AAI-testcr_1..NetworkCollection..0-resource-1.xml");
- filesToLoad.add("AAI-ExtVL-resource-40.0.xml");
- assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.NETWORK_COLLECTION_CSAR_FILE);
- }
-
- @Test
- public void generatePortMirrorConfigurationModel()
- throws CsarConverterException, IOException, XmlArtifactGenerationException {
- List<String> filesToLoad = new ArrayList<>();
- filesToLoad.add("AAI-Port Mirror_Test-service-1.0.xml");
- filesToLoad.add("AAI-Port Mirroring Configuration-resource-35.0.xml");
- assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.PORT_MIRROR_CSAR);
- }
-
- public Matcher<String> matches(final String expected) {
- return new BaseMatcher<String>() {
- protected String theExpected = expected;
-
- @Override
- public boolean matches(Object item) {
- return new ArtifactTestUtils().compareXmlStrings((String) item, theExpected);
- }
-
- @Override
- public void describeTo(Description description) {
- description.appendText(theExpected.toString());
- }
- };
- }
-
- private Map<String, String> createExpectedXmlFiles(List<String> filesToLoad) throws IOException {
- Map<String, String> xmlMap = new HashMap<>();
- for (String filename : filesToLoad) {
- xmlMap.put(filename, new ArtifactTestUtils().loadResourceAsString("generatedXml/" + filename));
- }
- return xmlMap;
- }
-
- private void assertThatGeneratedFilesMatchExpected(Map<String, String> expectedXmlFiles, CsarTest csarFile)
- throws CsarConverterException, IOException {
- List<BabelArtifact> generatedArtifacts =
- converter.generateXmlFromCsar(csarFile.getContent(), csarFile.getName(), SERVICE_VERSION);
- assertThat("Incorrect number of files generated", //
- generatedArtifacts.size(), is(equalTo(expectedXmlFiles.size())));
- for (BabelArtifact generated : generatedArtifacts) {
- String fileName = generated.getName();
- String expectedXml = expectedXmlFiles.get(fileName);
- assertThat("Missing expected content for " + generated.getName(), expectedXml, is(not(nullValue())));
- assertThat("The content of " + generated.getName() + " must match the expected content",
- generated.getPayload(), matches(expectedXml));
- }
- }
+ private static final String ARTIFACT_GENERATOR_CONFIG = "artifact-generator.properties";
+ private static final String FILTER_TYPES_CONFIG = "filter-types.properties";
+
+ private static final String INCORRECT_CSAR_NAME = "the_name_of_the_csar_file.csar";
+ private static final String SERVICE_VERSION = "1.0";
+
+ static {
+ if (System.getProperty("APP_HOME") == null) {
+ System.setProperty("APP_HOME", ".");
+ }
+ }
+
+ // The class to be tested.
+ private CsarToXmlConverter converter;
+
+ @Rule
+ public ExpectedException exception = ExpectedException.none();
+
+ @Before
+ public void setup() {
+ System.setProperty(ArtifactGeneratorToscaParser.PROPERTY_ARTIFACT_GENERATOR_CONFIG_FILE,
+ new ArtifactTestUtils().getResourcePath(ARTIFACT_GENERATOR_CONFIG));
+
+ System.setProperty(ArtifactGeneratorToscaParser.PROPERTY_GROUP_FILTERS_CONFIG_FILE,
+ new ArtifactTestUtils().getResourcePath(FILTER_TYPES_CONFIG));
+
+ converter = new CsarToXmlConverter();
+ }
+
+ @After
+ public void tearDown() {
+ converter = null;
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void testNullArtifactSupplied() throws CsarConverterException {
+ converter.generateXmlFromCsar(null, null, null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void testMissingName() throws CsarConverterException, IOException {
+ converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), null, null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void testMissingVersion() throws CsarConverterException, IOException {
+ converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), INCORRECT_CSAR_NAME, null);
+ }
+
+ @Test(expected = CsarConverterException.class)
+ public void testNoPayloadExists() throws CsarConverterException {
+ converter.generateXmlFromCsar(new byte[0], INCORRECT_CSAR_NAME, SERVICE_VERSION);
+ }
+
+ @Test(expected = CsarConverterException.class)
+ public void testCsarFileHasNoYmlFiles() throws CsarConverterException, IOException {
+ converter.generateXmlFromCsar(CsarTest.NO_YAML_FILES.getContent(), CsarTest.NO_YAML_FILES.getName(),
+ SERVICE_VERSION);
+ }
+
+ /**
+ * Test that an Exception is thrown when the Artifact Generator properties are not present.
+ *
+ * @throws CsarConverterException
+ * if there is an error either extracting the YAML files or generating XML artifacts
+ * @throws IOException
+ * if an I/O exception occurs loading the test CSAR file
+ * @throws IOException
+ * @throws XmlArtifactGenerationException
+ * @throws CsarConverterException
+ */
+ @Test
+ public void testArtifactGeneratorConfigMissing() throws CsarConverterException, IOException {
+ exception.expect(CsarConverterException.class);
+ exception.expectMessage("Cannot generate artifacts. System property artifactgenerator.config not configured");
+
+ // Unset the required system property
+ System.clearProperty(ArtifactGeneratorToscaParser.PROPERTY_ARTIFACT_GENERATOR_CONFIG_FILE);
+ converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), CsarTest.SD_WAN_CSAR_FILE.getName(),
+ SERVICE_VERSION);
+ }
+
+ /**
+ * Test that an Exception is thrown when the Artifact Generator's Group Filter properties are not present.
+ *
+ * @throws IOException
+ * @throws XmlArtifactGenerationException
+ * @throws CsarConverterException
+ */
+ @Test
+ public void generateXmlFromCsarFilterTypesSystemPropertyNotSet()
+ throws IOException, XmlArtifactGenerationException, CsarConverterException {
+ exception.expect(CsarConverterException.class);
+ exception.expectMessage("Cannot generate artifacts. System property groupfilter.config not configured");
+
+ // Unset the required system property
+ System.clearProperty(ArtifactGeneratorToscaParser.PROPERTY_GROUP_FILTERS_CONFIG_FILE);
+ converter.generateXmlFromCsar(CsarTest.SD_WAN_CSAR_FILE.getContent(), CsarTest.SD_WAN_CSAR_FILE.getName(),
+ SERVICE_VERSION);
+ }
+
+ @Test
+ public void testServiceMetadataMissing()
+ throws IOException, XmlArtifactGenerationException, CsarConverterException {
+ converter.generateXmlFromCsar(CsarTest.MISSING_METADATA_CSAR.getContent(),
+ CsarTest.MISSING_METADATA_CSAR.getName(), SERVICE_VERSION);
+ }
+
+ @Test
+ public void generateXmlFromSdWanCsar() throws IOException, CsarConverterException {
+ List<String> filesToLoad = new ArrayList<>();
+ filesToLoad.add("AAI-SD-WAN-Service-Test-service-1.0.xml");
+ filesToLoad.add("AAI-SdWanTestVsp..DUMMY..module-0-resource-2.xml");
+ filesToLoad.add("AAI-Tunnel_XConnTest-resource-2.0.xml");
+ filesToLoad.add("AAI-SD-WAN-Test-VSP-resource-1.0.xml");
+ assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.SD_WAN_CSAR_FILE);
+ }
+
+ @Test
+ public void generateXmlFromNetworkCollectionCsar() throws IOException, CsarConverterException {
+ List<String> filesToLoad = new ArrayList<>();
+ filesToLoad.add("AAI-TEST SVC_1-service-1.0.xml");
+ filesToLoad.add("AAI-TEST CR_1-resource-7.0.xml");
+ filesToLoad.add("AAI-testcr_1..NetworkCollection..0-resource-1.xml");
+ filesToLoad.add("AAI-ExtVL-resource-40.0.xml");
+ assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad),
+ CsarTest.NETWORK_COLLECTION_CSAR_FILE);
+ }
+
+ @Test
+ public void generatePortMirrorConfigurationModel()
+ throws CsarConverterException, IOException, XmlArtifactGenerationException {
+ List<String> filesToLoad = new ArrayList<>();
+ filesToLoad.add("AAI-Port Mirror_Test-service-1.0.xml");
+ filesToLoad.add("AAI-Port Mirroring Configuration-resource-35.0.xml");
+ assertThatGeneratedFilesMatchExpected(createExpectedXmlFiles(filesToLoad), CsarTest.PORT_MIRROR_CSAR);
+ }
+
+ public Matcher<String> matches(final String expected) {
+ return new BaseMatcher<String>() {
+ protected String theExpected = expected;
+
+ @Override
+ public boolean matches(Object item) {
+ return new ArtifactTestUtils().compareXmlStrings((String) item, theExpected);
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendText(theExpected.toString());
+ }
+ };
+ }
+
+ private Map<String, String> createExpectedXmlFiles(List<String> filesToLoad) throws IOException {
+ Map<String, String> xmlMap = new HashMap<>();
+ for (String filename : filesToLoad) {
+ xmlMap.put(filename, new ArtifactTestUtils().loadResourceAsString("generatedXml/" + filename));
+ }
+ return xmlMap;
+ }
+
+ private void assertThatGeneratedFilesMatchExpected(Map<String, String> expectedXmlFiles, CsarTest csarFile)
+ throws CsarConverterException, IOException {
+ List<BabelArtifact> generatedArtifacts = converter.generateXmlFromCsar(csarFile.getContent(),
+ csarFile.getName(), SERVICE_VERSION);
+ assertThat("Incorrect number of files generated", //
+ generatedArtifacts.size(), is(equalTo(expectedXmlFiles.size())));
+ for (BabelArtifact generated : generatedArtifacts) {
+ String fileName = generated.getName();
+ String expectedXml = expectedXmlFiles.get(fileName);
+ assertThat("Missing expected content for " + generated.getName(), expectedXml, is(not(nullValue())));
+ assertThat("The content of " + generated.getName() + " must match the expected content",
+ generated.getPayload(), matches(expectedXml));
+ }
+ }
}