X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Fxml%2Fgenerator%2Fmodel%2FTestWidget.java;h=fec34791ed835f01667255107db83bbe932a2f39;hb=bfde3ef00beb3c6f31cebfd12e90b9b9cdcc492e;hp=6f2dccad1f0bf20cddb67ed43f2c3b511607fcc5;hpb=716e7f240c2f4a71d48e7708aa27194db2dd7f21;p=aai%2Fbabel.git diff --git a/src/test/java/org/onap/aai/babel/xml/generator/model/TestWidget.java b/src/test/java/org/onap/aai/babel/xml/generator/model/TestWidget.java index 6f2dcca..fec3479 100644 --- a/src/test/java/org/onap/aai/babel/xml/generator/model/TestWidget.java +++ b/src/test/java/org/onap/aai/babel/xml/generator/model/TestWidget.java @@ -1,9 +1,9 @@ /** - * ============LICENSE_START======================================================= + * ============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,38 +18,191 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.babel.xml.generator.model; +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.Collections; +import org.junit.BeforeClass; import org.junit.Test; -import org.onap.aai.babel.xml.generator.model.Widget.Type; +import org.onap.aai.babel.util.ArtifactTestUtils; +import org.onap.aai.babel.xml.generator.XmlArtifactGenerationException; +import org.onap.aai.babel.xml.generator.types.ModelType; /** - * Direct tests of the Model so as to improve code coverage + * Direct tests of the Widget class for code coverage. */ public class TestWidget { - static { - if (System.getProperty("APP_HOME") == null) { - System.setProperty("APP_HOME", "."); - } + /** + * Load the Widget mappings configuration. + * + * @throws IOException + * if the mappings configuration cannot be loaded + */ + @BeforeClass + public static void setup() throws IOException { + new ArtifactTestUtils().loadWidgetMappings(); } @Test - public void testGetWidgets() { - Widget.getWidget(Type.VFC); - Widget.getWidget(Type.FLAVOR); - Widget.getWidget(Type.TENANT); - Widget.getWidget(Type.VOLUME_GROUP); - Widget.getWidget(Type.L3_NET); - Widget.getWidget(Type.IMAGE); - Widget.getWidget(Type.TUNNEL_XCONNECT); + public void testGetWidgets() throws XmlArtifactGenerationException { + Widget widget = Widget.createWidget("SERVICE"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("service-instance")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("VF"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("generic-vnf")); + assertThat(widget.getDeleteFlag(), is(false)); + + widget = Widget.createWidget("VFC"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("vnfc")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("VSERVER"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("vserver")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("VOLUME"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("volume")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("FLAVOR"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("flavor")); + assertThat(widget.getDeleteFlag(), is(false)); + + widget = Widget.createWidget("TENANT"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("tenant")); + assertThat(widget.getDeleteFlag(), is(false)); + + widget = Widget.createWidget("VOLUME_GROUP"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("volume-group")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("LINT"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("l-interface")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("L3_NET"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("l3-network")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("VFMODULE"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("vf-module")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("IMAGE"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("image")); + assertThat(widget.getDeleteFlag(), is(false)); + + widget = Widget.createWidget("OAM_NETWORK"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("oam-network")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("ALLOTTED_RESOURCE"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("allotted-resource")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("TUNNEL_XCONNECT"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("tunnel-xconnect")); + assertThat(widget.getDeleteFlag(), is(true)); + + widget = Widget.createWidget("CONFIGURATION"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getName(), is("configuration")); + assertThat(widget.getDeleteFlag(), is(true)); } @Test - public void testMethods() { - new ServiceWidget().addWidget(new TenantWidget()); - new VolumeGroupWidget().getWidgetType(); + public void testWidgetMethods() throws XmlArtifactGenerationException { + Widget widget = Widget.createWidget("SERVICE"); + assertThat(widget.getType(), is(ModelType.WIDGET)); + assertThat(widget.getWidgetId(), is("service-instance-invariant-id")); + assertThat(widget.addWidget(Widget.createWidget("TENANT")), is(true)); + assertThat(widget.memberOf(null), is(false)); + assertThat(widget.memberOf(Collections.emptyList()), is(false)); } + /** + * Call equals() method for code coverage. + * + * @throws XmlArtifactGenerationException + * if there is no configuration defined for the test Widget Type + */ + @Test + public void testEquals() throws XmlArtifactGenerationException { + Widget widgetModel = Widget.createWidget("OAM_NETWORK"); + + // equals() is reflexive + assertThat(widgetModel.equals(widgetModel), is(true)); + + // equals() is symmetric + Widget widgetModelB = Widget.createWidget("OAM_NETWORK"); + assertThat(widgetModel.equals(widgetModelB), is(true)); + assertThat(widgetModelB.equals(widgetModel), is(true)); + + assertThat(widgetModel.equals(null), is(false)); + assertThat(widgetModel.equals(Widget.createWidget("VSERVER")), is(false)); + } + + @Test(expected = IllegalArgumentException.class) + public void testGetUnknownWidget() throws XmlArtifactGenerationException { + WidgetType.valueOf("invalid-widget-name"); + } + + /** + * Try to get the Widget object for an unsupported (non-configured) type. + * + * @throws XmlArtifactGenerationException + * if there is no configuration defined for the specified Widget type + */ + @Test(expected = XmlArtifactGenerationException.class) + public void testGetDynamicWidget() throws XmlArtifactGenerationException { + Widget.createWidget(new WidgetType(null)); + } + + @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class) + public void testAddResourceIsUnsupported() throws XmlArtifactGenerationException { + Widget.createWidget("OAM_NETWORK").addResource(null); + } + + // Call Widget methods which are not supported, purely for code coverage. + + @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class) + public void testGetModelNameVersionIdIsUnsupported() throws XmlArtifactGenerationException { + Widget widgetModel = Widget.createWidget("OAM_NETWORK"); + assertThat(widgetModel.getModelNameVersionId(), is(nullValue())); + } + + @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class) + public void testGetModelTypeNameIsUnsupported() throws XmlArtifactGenerationException { + Widget widgetModel = Widget.createWidget("OAM_NETWORK"); + assertThat(widgetModel.getModelTypeName(), is(nullValue())); + } + + @Test(expected = org.onap.aai.babel.xml.generator.error.IllegalAccessException.class) + public void testGetModelIdIsUnsupported() throws XmlArtifactGenerationException { + Widget widgetModel = Widget.createWidget("OAM_NETWORK"); + assertThat(widgetModel.getModelId(), is(nullValue())); + } }