X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Fxml%2Fgenerator%2Fmodel%2FTestModel.java;h=9fc5928d4f9c332dab6e6e2c6bb3786ffc8387ea;hb=bfde3ef00beb3c6f31cebfd12e90b9b9cdcc492e;hp=2bd6fc7cd2db3b4e53d3e8625eab55d93c41f654;hpb=49a1e7a2d020b9413e08ba34d2af83c1c6604d54;p=aai%2Fbabel.git 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 2bd6fc7..9fc5928 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 @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 European Software Marketing Ltd. + * Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright (c) 2017-2019 European Software Marketing Ltd. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,22 +21,14 @@ 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.FileNotFoundException; import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.List; -import java.util.Properties; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; -import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil; -import org.onap.aai.babel.xml.generator.model.Widget.Type; -import org.onap.aai.babel.xml.generator.types.ModelType; +import org.onap.aai.babel.util.ArtifactTestUtils; /** * Direct tests of the Model abstract class (to improve code coverage). Not all methods are tested here. Some are @@ -44,47 +36,15 @@ import org.onap.aai.babel.xml.generator.types.ModelType; */ public class TestModel { - private Service serviceModel = new Service(); - private List resourceModels = Arrays.asList(new VirtualFunction()); - private Widget widgetModel = new OamNetwork(); - private Model anonymousModel; - - static { - System.setProperty("APP_HOME", "."); - } - /** - * Load the Widget to UUID mappings from the Artifact Generator properties. + * Load the Widget mapping configuration. * - * @throws FileNotFoundException - * if the properties file is missing * @throws IOException - * if the properties file is not loaded + * if the mappings configuration cannot be loaded */ - @Before - public void setup() throws FileNotFoundException, IOException { - InputStream in = TestModel.class.getClassLoader().getResourceAsStream("artifact-generator.properties"); - Properties properties = new Properties(); - properties.load(in); - in.close(); - WidgetConfigurationUtil.setConfig(properties); - - anonymousModel = new Model() { - @Override - public boolean addResource(Resource resource) { - return false; - } - - @Override - public boolean addWidget(Widget resource) { - return false; - } - - @Override - public Type getWidgetType() { - return null; - } - }; + @BeforeClass + public static void setup() throws IOException { + new ArtifactTestUtils().loadWidgetMappings(); } @Test @@ -93,50 +53,74 @@ 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)); + assertMapping("org.openecomp.resource.vfc", WidgetType.valueOf("VSERVER")); + assertMapping("org.openecomp.resource.cp", WidgetType.valueOf("LINT")); + assertMapping("org.openecomp.cp", WidgetType.valueOf("LINT")); + assertMapping("org.openecomp.cp.some.suffix", WidgetType.valueOf("LINT")); + assertMapping("org.openecomp.resource.vl", WidgetType.valueOf("L3_NET")); + assertMapping("org.openecomp.resource.vf", WidgetType.valueOf("VF")); + assertMapping("org.openecomp.groups.vfmodule", WidgetType.valueOf("VFMODULE")); + assertMapping("org.openecomp.groups.VfModule", WidgetType.valueOf("VFMODULE")); + assertMapping("org.openecomp.resource.vfc.nodes.heat.cinder", WidgetType.valueOf("VOLUME")); + assertMapping("org.openecomp.nodes.PortMirroringConfiguration", "Configuration", + WidgetType.valueOf("CONFIGURATION")); + assertMapping("any.string", "Configuration", WidgetType.valueOf("CONFIGURATION")); + assertMapping("org.openecomp.resource.cr.Kk1806Cr1", "CR", WidgetType.valueOf("CR")); + assertMapping("any.string", "CR", WidgetType.valueOf("CR")); + + assertMapping("org.openecomp.resource.vfc", "an.unknown.type", WidgetType.valueOf("VSERVER")); } + /** + * Test that there is no exception if processing a Model that has no metadata properties. + */ @Test - public void testGetCardinality() { - resourceModels.get(0).getCardinality(); + public void testNullIdentProperties() { + createTestModel().populateModelIdentificationInformation(null); } - @Test - public void testGetModelType() { - assertThat(serviceModel.getModelType(), is(ModelType.SERVICE)); - for (Resource resourceModel : resourceModels) { - assertThat(resourceModel.getModelType(), is(ModelType.RESOURCE)); - } - assertThat(widgetModel.getModelType(), is(ModelType.WIDGET)); - assertThat(anonymousModel.getModelType(), is(nullValue())); + /** + * Test that an exception occurs if calling code passes an unsupported Widget Type value to the base implementation + * of the hasWidgetType() method. + */ + @Test(expected = IllegalArgumentException.class) + public void testUnknownWidgetType() { + createTestModel().hasWidgetType(null); } - @Test - public void testGetModelNameVersionId() { - assertThat(anonymousModel.getModelNameVersionId(), is(nullValue())); + /** + * Create any Model with a valid WidgetType, for method testing. + * + * @return a valid Model for testing purposes + */ + private Model createTestModel() { + return new Resource(WidgetType.valueOf("VSERVER"), false); } - @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class) - public void testGetModelNameVersionIdIsUnsupported() { - assertThat(widgetModel.getModelNameVersionId(), is(nullValue())); - assertThat(resourceModels.get(0).getModelType(), is(ModelType.RESOURCE)); - assertThat(widgetModel.getModelType(), is(ModelType.WIDGET)); - assertThat(anonymousModel.getModelType(), is(nullValue())); + /** + * 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, WidgetType 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, WidgetType widgetType) { + assertThat(Model.getModelFor(toscaType, metadataType).getWidgetType(), is(widgetType)); } }