From 1954294aed95c2db4eb2659dcef91248535de079 Mon Sep 17 00:00:00 2001 From: "mark.j.leonard" Date: Tue, 5 Feb 2019 14:24:33 +0000 Subject: Replace Resource sub-classes with configuration Delete the sub-classes of the Resource (internal Model class) and replace the annotated properties of these classes with TOSCA-to-Model mappping data loaded from the JSON configuration. Change-Id: I56d5d9d4893be45eb42ae65099ea9abe5f4409b9 Issue-ID: AAI-2121 Signed-off-by: mark.j.leonard --- .../parser/TestArtifactGeneratorToscaParser.java | 16 +++-- .../aai/babel/xml/generator/model/TestModel.java | 83 ++++++++++++++-------- .../babel/xml/generator/model/TestVfModule.java | 44 ++++++------ 3 files changed, 85 insertions(+), 58 deletions(-) (limited to 'src/test/java/org/onap') 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 52dd462..d7519c0 100644 --- a/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java +++ b/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java @@ -32,9 +32,8 @@ import java.util.List; 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.AllotedResource; -import org.onap.aai.babel.xml.generator.model.InstanceGroup; import org.onap.aai.babel.xml.generator.model.Resource; +import org.onap.aai.babel.xml.generator.model.Widget.Type; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; import org.onap.sdc.toscaparser.api.Group; import org.onap.sdc.toscaparser.api.NodeTemplate; @@ -55,7 +54,8 @@ public class TestArtifactGeneratorToscaParser { @Test(expected = IllegalArgumentException.class) public void testMissingProvidingService() { List nodeTemplateList = Collections.singletonList(buildNodeTemplate("name", "BlockStorage")); - new ArtifactGeneratorToscaParser(null).processResourceModels(new AllotedResource(), nodeTemplateList); + new ArtifactGeneratorToscaParser(null).processResourceModels(new Resource(Type.ALLOTTED_RESOURCE, true), + nodeTemplateList); } /** @@ -65,7 +65,8 @@ public class TestArtifactGeneratorToscaParser { @Test(expected = IllegalArgumentException.class) public void testAddResourceNotProvidingService() { List nodeTemplateList = Collections.singletonList(buildNodeTemplate("testCR", "CR")); - final Resource dummyResource = new AllotedResource(); // Any Resource to which the CR can be added + // Create any Resource to which the CR can be added + final Resource dummyResource = new Resource(Type.ALLOTTED_RESOURCE, true); new ArtifactGeneratorToscaParser(null).processResourceModels(dummyResource, nodeTemplateList); } @@ -90,7 +91,8 @@ public class TestArtifactGeneratorToscaParser { Mockito.when(helper.getGroupsOfOriginOfNodeTemplate(serviceNodeTemplate)).thenReturn(groups); ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(helper); - List resources = parser.processInstanceGroups(new InstanceGroup(), serviceNodeTemplate); + List resources = + parser.processInstanceGroups(new Resource(Type.INSTANCE_GROUP, true), serviceNodeTemplate); assertThat(resources.size(), is(1)); Resource resource = resources.get(0); @@ -102,9 +104,9 @@ public class TestArtifactGeneratorToscaParser { * sdc-tosca parser. * * @param name - * name of the NodeTemplate + * name of the NodeTemplate * @param type - * type of the NodeTemplate + * type of the NodeTemplate * @return a new NodeTemplate object */ private NodeTemplate buildNodeTemplate(String name, String type) { diff --git a/src/test/java/org/onap/aai/babel/xml/generator/model/TestModel.java b/src/test/java/org/onap/aai/babel/xml/generator/model/TestModel.java index 912a505..3d5e841 100644 --- a/src/test/java/org/onap/aai/babel/xml/generator/model/TestModel.java +++ b/src/test/java/org/onap/aai/babel/xml/generator/model/TestModel.java @@ -21,14 +21,15 @@ package org.onap.aai.babel.xml.generator.model; -import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; import java.util.List; +import java.util.Map; import org.junit.Before; import org.junit.Test; import org.onap.aai.babel.parser.ArtifactGeneratorToscaParser; @@ -43,7 +44,8 @@ import org.onap.aai.babel.xml.generator.types.ModelType; public class TestModel { private Service serviceModel = new Service(); - private List resourceModels = Arrays.asList(new VirtualFunction(), new InstanceGroup()); + private List resourceModels = + Arrays.asList(new Resource(Type.CR, true), new Resource(Type.INSTANCE_GROUP, true)); private Widget widgetModel = new OamNetwork(); private Model anonymousModel; @@ -56,7 +58,7 @@ public class TestModel { * from the Artifact Generator properties. * * @throws IOException - * if the Artifact Generator properties file is not loaded + * if the Artifact Generator properties file is not loaded */ @Before public void setup() throws IOException { @@ -81,6 +83,16 @@ public class TestModel { public Type getWidgetType() { return null; } + + @Override + public Map getProperties() { + return Collections.emptyMap(); + } + + @Override + public boolean isResource() { + return false; + } }; } @@ -90,34 +102,47 @@ public class TestModel { assertThat(Model.getModelFor(""), is(nullValue())); assertThat(Model.getModelFor("any.unknown.type"), is(nullValue())); - assertThat(Model.getModelFor("org.openecomp.resource.vf.allottedResource"), instanceOf(AllotedResource.class)); - assertThat(Model.getModelFor("org.openecomp.resource.vf.allottedResource.with.sub.type"), - instanceOf(AllotedResource.class)); - assertThat(Model.getModelFor("org.openecomp.resource.vfc.AllottedResource"), - instanceOf(ProvidingService.class)); - assertThat(Model.getModelFor("org.openecomp.resource.vfc"), instanceOf(VServerWidget.class)); - assertThat(Model.getModelFor("org.openecomp.resource.cp"), instanceOf(LIntfWidget.class)); - assertThat(Model.getModelFor("org.openecomp.cp"), instanceOf(LIntfWidget.class)); - assertThat(Model.getModelFor("org.openecomp.cp.some.suffix"), instanceOf(LIntfWidget.class)); - assertThat(Model.getModelFor("org.openecomp.resource.vl"), instanceOf(L3Network.class)); - assertThat(Model.getModelFor("org.openecomp.resource.vf"), instanceOf(VirtualFunction.class)); - assertThat(Model.getModelFor("org.openecomp.groups.vfmodule"), instanceOf(VfModule.class)); - assertThat(Model.getModelFor("org.openecomp.groups.VfModule"), instanceOf(VfModule.class)); - assertThat(Model.getModelFor("org.openecomp.resource.vfc.nodes.heat.cinder"), instanceOf(VolumeWidget.class)); - assertThat(Model.getModelFor("org.openecomp.nodes.PortMirroringConfiguration"), - instanceOf(Configuration.class)); - assertThat(Model.getModelFor("org.openecomp.nodes.PortMirroringConfiguration", "Configuration"), - instanceOf(Configuration.class)); - assertThat(Model.getModelFor("any.string", "Configuration"), instanceOf(Configuration.class)); - assertThat(Model.getModelFor("org.openecomp.resource.cr.Kk1806Cr1", "CR"), instanceOf(CR.class)); - assertThat(Model.getModelFor("any.string", "CR"), instanceOf(CR.class)); - - assertThat(Model.getModelFor("org.openecomp.resource.vfc", "an.unknown.type"), instanceOf(VServerWidget.class)); + assertMapping("org.openecomp.resource.vfc", Type.VSERVER); + assertMapping("org.openecomp.resource.cp", Type.LINT); + assertMapping("org.openecomp.cp", Type.LINT); + assertMapping("org.openecomp.cp.some.suffix", Type.LINT); + assertMapping("org.openecomp.resource.vl", Type.L3_NET); + assertMapping("org.openecomp.resource.vf", Type.VF); + assertMapping("org.openecomp.groups.vfmodule", Type.VFMODULE); + assertMapping("org.openecomp.groups.VfModule", Type.VFMODULE); + assertMapping("org.openecomp.resource.vfc.nodes.heat.cinder", Type.VOLUME); + assertMapping("org.openecomp.nodes.PortMirroringConfiguration", "Configuration", Type.CONFIGURATION); + assertMapping("any.string", "Configuration", Type.CONFIGURATION); + assertMapping("org.openecomp.resource.cr.Kk1806Cr1", "CR", Type.CR); + assertMapping("any.string", "CR", Type.CR); + + assertMapping("org.openecomp.resource.vfc", "an.unknown.type", Type.VSERVER); } - @Test - public void testGetCardinality() { - resourceModels.get(0).getCardinality(); + /** + * Assert that the TOSCA type String is mapped to the expected Widget Type. + * + * @param toscaType + * the TOSCA type or prefix + * @param widgetType + * the type of Widget expected from the mappings + */ + private void assertMapping(String toscaType, Type widgetType) { + assertThat(Model.getModelFor(toscaType).getWidgetType(), is(widgetType)); + } + + /** + * Assert that the TOSCA metadata type is mapped to the expected Widget Type. + * + * @param toscaType + * the name (or name prefix) of the TOSCA type + * @param metadataType + * the type specified in the TOSCA metadata + * @param widgetType + * the type of Widget expected from the mappings + */ + private void assertMapping(String toscaType, String metadataType, Type widgetType) { + assertThat(Model.getModelFor(toscaType, metadataType).getWidgetType(), is(widgetType)); } @Test diff --git a/src/test/java/org/onap/aai/babel/xml/generator/model/TestVfModule.java b/src/test/java/org/onap/aai/babel/xml/generator/model/TestVfModule.java index 1a5986b..451d2bb 100644 --- a/src/test/java/org/onap/aai/babel/xml/generator/model/TestVfModule.java +++ b/src/test/java/org/onap/aai/babel/xml/generator/model/TestVfModule.java @@ -54,25 +54,25 @@ public class TestVfModule { */ @Test public void testHashCode() { - VfModule vfModule = createNewVfModule(); + Resource vfModule = createNewVfModule(); populateIdentInfo(vfModule); assertThat(vfModule.hashCode(), is(notNullValue())); } - + /** * Call equals() method for code coverage. */ @Test public void testEquals() { - VfModule vfModuleA = createNewVfModule(); - populateIdentInfo(vfModuleA); + Resource vfModuleA = createNewVfModule(); + populateIdentInfo(vfModuleA); - // equals() is reflexive + // equals() is reflexive assertThat(vfModuleA.equals(vfModuleA), is(true)); - + // equals() is symmetric - VfModule vfModuleB = createNewVfModule(); - populateIdentInfo(vfModuleB); + Resource vfModuleB = createNewVfModule(); + populateIdentInfo(vfModuleB); assertThat(vfModuleA.equals(vfModuleB), is(true)); assertThat(vfModuleB.equals(vfModuleA), is(true)); @@ -95,7 +95,7 @@ public class TestVfModule { */ @Test public void testNonMemberWidgetToVf() { - VfModule vfModule = createNewVfModule(); + Resource vfModule = createNewVfModule(); assertThat(vfModule.addWidget(createNewWidget(Type.SERVICE)), is(false)); assertNumberOfWidgets(vfModule, 0); } @@ -105,7 +105,7 @@ public class TestVfModule { */ @Test public void testAddOamNetworkWidgetToVf() { - VfModule vfModule = createNewVfModule(); + Resource vfModule = createNewVfModule(); assertThat(createNewWidgetForModule(vfModule, Type.OAM_NETWORK), is(false)); assertNumberOfWidgets(vfModule, 0); } @@ -120,7 +120,7 @@ public class TestVfModule { */ @Test public void testAddVolumeWidgetToVf() { - VfModule vfModule = createNewVfModule(); + Resource vfModule = createNewVfModule(); // Adding a Volume widget has no effect until a vserver widget is added. assertAddWidget(vfModule, Type.VOLUME); @@ -152,7 +152,7 @@ public class TestVfModule { */ @Test public void testAddLinterfaceWidgetToVf() { - VfModule vfModule = createNewVfModule(); + Resource vfModule = createNewVfModule(); // Adding an L-Interface widget has no effect until a vserver widget is added. assertFailToAddWidget(vfModule, Type.LINT); @@ -185,7 +185,7 @@ public class TestVfModule { */ @Test public void testAddVolumeAndLinterfaceWidgetToVf() { - VfModule vfModule = createNewVfModule(); + Resource vfModule = createNewVfModule(); // Adding a Volume widget has no effect until a vserver widget is added. assertAddWidget(vfModule, Type.VOLUME); @@ -232,8 +232,8 @@ public class TestVfModule { * * @return new VF Module resource */ - private VfModule createNewVfModule() { - VfModule vfModule = new VfModule(); + private Resource createNewVfModule() { + Resource vfModule = new Resource(Type.VFMODULE, true); assertNumberOfWidgets(vfModule, 0); return vfModule; } @@ -244,7 +244,7 @@ public class TestVfModule { * @param vfModule * to be populated */ - private void populateIdentInfo(VfModule vfModule) { + private void populateIdentInfo(Resource vfModule) { Map modelIdentInfo = new HashMap<>(); modelIdentInfo.put("UUID", "dummy_uuid"); vfModule.populateModelIdentificationInformation(modelIdentInfo); @@ -258,7 +258,7 @@ public class TestVfModule { * @param widgetType * the type of Widget to create and add */ - private void assertAddWidget(VfModule vfModule, Type widgetType) { + private void assertAddWidget(Resource vfModule, Type widgetType) { assertThat(createNewWidgetForModule(vfModule, widgetType), is(true)); } @@ -270,7 +270,7 @@ public class TestVfModule { * @param widgetType * the type of Widget to create and attempt to add */ - private void assertFailToAddWidget(VfModule vfModule, Type widgetType) { + private void assertFailToAddWidget(Resource vfModule, Type widgetType) { assertThat(createNewWidgetForModule(vfModule, widgetType), is(false)); } @@ -283,7 +283,7 @@ public class TestVfModule { * the type of Widget to create and attempt to add * @return whether or not the Widget was added to the module */ - private boolean createNewWidgetForModule(VfModule vfModule, Type widgetType) { + private boolean createNewWidgetForModule(Resource vfModule, Type widgetType) { Widget widget = createNewWidget(widgetType); setWidgetAsMember(vfModule, widget); return vfModule.addWidget(widget); @@ -299,7 +299,7 @@ public class TestVfModule { * @param widget * the widget to be set as the member */ - private void setWidgetAsMember(VfModule vfModule, Widget widget) { + private void setWidgetAsMember(Resource vfModule, Widget widget) { String id = widget.getId(); widget.addKey(id); vfModule.setMembers(Collections.singletonList(id)); @@ -312,7 +312,7 @@ public class TestVfModule { * the VF Module to update * @return the number of Widgets present in the vserver on creation */ - private int createVserverForVf(VfModule vfModule) { + private int createVserverForVf(Resource vfModule) { VServerWidget vserverWidget = (VServerWidget) createNewWidget(Type.VSERVER); assertNumberOfWidgets(vfModule, 0); final int initialWidgetCount = addVserverToVf(vfModule, vserverWidget); @@ -329,7 +329,7 @@ public class TestVfModule { * the Widget to add * @return initial widget count for the vserver Widget */ - private int addVserverToVf(VfModule vfModule, VServerWidget vserverWidget) { + private int addVserverToVf(Resource vfModule, VServerWidget vserverWidget) { // A vserver (initially) has Flavor, Image, Tenant and Vfc. final int initialWidgetCount = 4; assertNumberOfWidgets(vserverWidget, initialWidgetCount); -- cgit 1.2.3-korg