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=f2b78a1b2d0e34e0e03409161f6381c33e22ee87;hb=5a6fd49a6aca3a567464527335b107746e28f3bd;hp=77c2a50a0dde1ef560b1149af3a7d8c898cfe616;hpb=4036c9aae1965d3fa53956085e9d6f90feb217a8;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 77c2a50..f2b78a1 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. @@ -18,55 +18,126 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.babel.xml.generator.model; -import java.io.FileNotFoundException; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.junit.Assert.assertThat; + import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.Collection; -import java.util.Properties; import org.junit.Before; import org.junit.Test; -import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil; +import org.onap.aai.babel.parser.ArtifactGeneratorToscaParser; +import org.onap.aai.babel.util.ArtifactTestUtils; +import org.onap.aai.babel.xml.generator.model.Widget.Type; /** - * Direct tests of the Model (to improve code coverage). + * Direct tests of the Model abstract class (to improve code coverage). Not all methods are tested here. Some are + * covered by the tests of derived classes. */ public class TestModel { - static { - if (System.getProperty("AJSC_HOME") == null) { - System.setProperty("AJSC_HOME", "."); - } - } + private Widget widgetModel = new Widget(Type.OAM_NETWORK, "oam-network", true); + private Model anonymousModel; + /** + * Initialize the Artifact Generator with filtering and mapping configuration. Also load the Widget to UUID mappings + * from the Artifact Generator properties. + * + * @throws IOException + * 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); + public void setup() throws IOException { + ArtifactTestUtils utils = new ArtifactTestUtils(); + utils.setGeneratorSystemProperties(); + + String configLocation = System.getProperty(ArtifactGeneratorToscaParser.PROPERTY_TOSCA_MAPPING_FILE); + if (configLocation == null) { + throw new IllegalArgumentException( + String.format(ArtifactGeneratorToscaParser.GENERATOR_AAI_CONFIGLOCATION_NOT_FOUND, + ArtifactGeneratorToscaParser.PROPERTY_TOSCA_MAPPING_FILE)); + } + + ArtifactGeneratorToscaParser.initToscaMappingsConfiguration(configLocation); + utils.loadWidgetToUuidMappings(); + + anonymousModel = new Model() { + @Override + public boolean addWidget(Widget resource) { + return false; + } + + @Override + public Type getWidgetType() { + return null; + } + + @Override + public String getModelTypeName() { + return null; + } + }; } @Test public void testGetModels() { - Collection toscaTypes = Arrays.asList("org.openecomp.resource.vf.allottedResource", - "org.openecomp.resource.cp", "org.openecomp.resource.vfc.nodes.heat.cinder", "any.unknown.type", null); - for (String toscaType : toscaTypes) { - Model.getModelFor(toscaType); - } + assertThat(Model.getModelFor(null), is(nullValue())); + assertThat(Model.getModelFor(""), is(nullValue())); + assertThat(Model.getModelFor("any.unknown.type"), is(nullValue())); + + 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() { - new AllotedResource().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 - public void testGetModelType() { - new OamNetwork().getModelType(); + public void testGetModelNameVersionId() { + assertThat(anonymousModel.getModelNameVersionId(), is(nullValue())); + } + + @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class) + public void testGetModelNameVersionIdIsUnsupported() { + assertThat(widgetModel.getModelNameVersionId(), is(nullValue())); } }