diff options
author | ms236b <ms236B@att.com> | 2019-03-04 15:51:35 -0500 |
---|---|---|
committer | ms236b <ms236B@att.com> | 2019-03-15 09:15:59 -0400 |
commit | 507a5b3d3e8389dde606f2c9fe74408238e26680 (patch) | |
tree | 6327edbd01cc4002f795a5e8662f95f8bc64be36 /blueprint-generator/src/test | |
parent | 7fa68e8dec2f2f0628333261a5458299370a07dd (diff) |
Commit for the blueprint generator java tool
Fixed the issues listed in the review and added everything. Current
coverage: 56.9%
Issue-ID: DCAEGEN2-1125
Change-Id: Iab5ec548aeafc5c0dfdcd60ef5d03fc35190ce5b
Signed-off-by: ms236b <ms236B@att.com>
Signed-off-by: ms236b <ms236b@att.com>
Signed-off-by: ms236b <ms236B@att.com>
Diffstat (limited to 'blueprint-generator/src/test')
-rw-r--r-- | blueprint-generator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java | 372 |
1 files changed, 372 insertions, 0 deletions
diff --git a/blueprint-generator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java b/blueprint-generator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java new file mode 100644 index 0000000..1f1aab2 --- /dev/null +++ b/blueprint-generator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java @@ -0,0 +1,372 @@ +/**============LICENSE_START======================================================= + org.onap.dcae + ================================================================================ + Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + */ + +package org.onap.blueprintgenerator.core; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.TreeMap; + +import org.junit.Test; +import org.onap.blueprintgenerator.core.BlueprintGenerator; +import org.onap.blueprintgenerator.models.blueprint.Blueprint; +import org.onap.blueprintgenerator.models.blueprint.ConcatObj; +import org.onap.blueprintgenerator.models.blueprint.DmaapObj; +import org.onap.blueprintgenerator.models.blueprint.GetInput; +import org.onap.blueprintgenerator.models.blueprint.Interfaces; +import org.onap.blueprintgenerator.models.blueprint.Start; +import org.onap.blueprintgenerator.models.blueprint.StartInputs; +import org.onap.blueprintgenerator.models.componentspec.Artifacts; +import org.onap.blueprintgenerator.models.componentspec.Auxilary; +import org.onap.blueprintgenerator.models.componentspec.CallsObj; +import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; +import org.onap.blueprintgenerator.models.componentspec.Container; +import org.onap.blueprintgenerator.models.componentspec.HealthCheck; +import org.onap.blueprintgenerator.models.componentspec.Host; +import org.onap.blueprintgenerator.models.componentspec.Parameters; +import org.onap.blueprintgenerator.models.componentspec.Policy; +import org.onap.blueprintgenerator.models.componentspec.ProvidesObj; +import org.onap.blueprintgenerator.models.componentspec.Publishes; +import org.onap.blueprintgenerator.models.componentspec.Self; +import org.onap.blueprintgenerator.models.componentspec.Services; +import org.onap.blueprintgenerator.models.componentspec.Streams; +import org.onap.blueprintgenerator.models.componentspec.Subscribes; +import org.onap.blueprintgenerator.models.componentspec.Volumes; +import org.onap.blueprintgenerator.models.onapbp.OnapNode; + + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; + +import junit.framework.Assert; + + +// TODO: Auto-generated Javadoc +/** + * The Class BlueprintGeneratorTest. + */ +public class BlueprintGeneratorTest { + + /** + * Component spec test. + * + * @throws JsonParseException the json parse exception + * @throws JsonMappingException the json mapping exception + * @throws IOException Signals that an I/O exception has occurred. + */ + + @Test + public void componentSpecTest() throws JsonParseException, JsonMappingException, IOException { + + ComponentSpec spec = new ComponentSpec(); + TestComponentSpec test = new TestComponentSpec(); + spec.createComponentSpecFromString(test.getCs()); + + //Manually fill a component spec object with the values from the file itself + ComponentSpec manualSpec = new ComponentSpec(); + + Self self = new Self(); + self.setComponent_type("docker"); + self.setDescription("Test component spec"); + self.setName("test.component.spec"); + self.setVersion("1.0.1"); + manualSpec.setSelf(self); + + //assertEquals(manualSpec.getSelf(), spec.getSelf()); + + Services services = new Services(); + CallsObj[] calls = new CallsObj[0]; + ProvidesObj[] provides = new ProvidesObj[0]; + services.setCalls(calls); + services.setProvides(provides); + manualSpec.setServices(null); + + //assertEquals(manualSpec.getServices(), spec.getServices()); + + Streams streams = new Streams(); + Publishes[] publishes = new Publishes[2]; + Publishes pub1 = new Publishes(); + pub1.setConfig_key("TEST-PUB-DR"); + pub1.setFormat("dataformat_Hello_World_PM"); + pub1.setType("data_router"); + pub1.setVersion("1.0.0"); + + Publishes pub2 = new Publishes(); + pub2.setConfig_key("TEST-PUB-MR"); + pub2.setFormat("dataformat_Hello_World_PM"); + pub2.setType("message_router"); + pub2.setVersion("1.0.0"); + publishes[0] = pub1; + publishes[1] = pub2; + streams.setPublishes(publishes); + + Subscribes[] subscribes = new Subscribes[2]; + Subscribes sub1 = new Subscribes(); + sub1.setConfig_key("TEST-SUB-MR"); + sub1.setFormat("dataformat_Hello_World_PM"); + sub1.setRoute("/TEST_HELLO_WORLD_SUB_MR"); + sub1.setType("message_router"); + sub1.setVersion("1.0.0"); + + Subscribes sub2 = new Subscribes(); + sub2.setConfig_key("TEST-SUB-DR"); + sub2.setFormat("dataformat_Hello_World_PM"); + sub2.setRoute("/TEST-HELLO-WORLD-SUB-DR"); + sub2.setType("data_router"); + sub2.setVersion("1.0.0"); + subscribes[0] = sub1; + subscribes[1] = sub2; + streams.setSubscribes(subscribes); + + manualSpec.setStreams(streams); + + //assertEquals(manualSpec.getStreams(), spec.getStreams()); + + Parameters[] parameters = new Parameters[1]; + Parameters par1 = new Parameters(); + par1.setName("testParam1"); + par1.setValue("test-param-1"); + par1.setDescription("test parameter 1"); + par1.setSourced_at_deployment(true); + par1.setDesigner_editable(true); + par1.setPolicy_editable(true); + par1.setPolicy_group("Test_Parameters"); + par1.setRequired(true); + par1.setType("string"); + parameters[0] = par1; + + manualSpec.setParameters(parameters); + + //assertEquals(manualSpec.getParameters(), spec.getParameters()); + + Auxilary auxilary = new Auxilary(); + HealthCheck healthcheck = new HealthCheck(); + healthcheck.setInterval("300s"); + healthcheck.setTimeout("120s"); + healthcheck.setScript("/etc/init.d/nagios status"); + healthcheck.setType("docker"); + auxilary.setHealthcheck(healthcheck); + + Volumes[] volumes = new Volumes[1]; + Volumes vol1 = new Volumes(); + Container con1 = new Container(); + con1.setBind("/opt/app/manager/config/hostname"); + Host host1 = new Host(); + host1.setPath("/etc/hostname"); + host1.setMode("ro"); + vol1.setContainer(con1); + vol1.setHost(host1); + + + volumes[0] = vol1; + + auxilary.setVolumes(volumes); + + String[] ports = new String[2]; + ports[0] = "80:80"; + ports[1] = "99:99"; + + TreeMap<String, String> dataBases = new TreeMap<String, String>(); + dataBases.put("TestDB1", "PGaaS"); + dataBases.put("TestDB2", "PGaaS"); + auxilary.setDatabases(dataBases); + + Policy pol = new Policy(); + pol.setTrigger_type("docker"); + pol.setScript_path("/opt/app/manager/bin/reconfigure.sh"); + auxilary.setPolicy(pol); + + auxilary.setPorts(ports); + + manualSpec.setAuxilary(auxilary); + + //assertEquals(manualSpec.getAuxilary(), spec.getAuxilary()); + + Artifacts[] artifacts = new Artifacts[1]; + Artifacts art = new Artifacts(); + art.setType("docker image"); + art.setUri("test.tester"); + + artifacts[0] = art; + manualSpec.setArtifacts(artifacts); + + //assertEquals(manualSpec.getArtifacts(), spec.getArtifacts()); + + } + + /** + * Tosca definition test. + */ + @Test + public void toscaDefinitionTest() { + ComponentSpec cs = new ComponentSpec(); + TestComponentSpec test = new TestComponentSpec(); + cs.createComponentSpecFromString(test.getCs()); + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, "", 'o', ""); + + assertEquals(bp.getTosca_definitions_version(), "cloudify_dsl_1_3"); + } + + /** + * Imports test. + */ + @Test + public void importsTest() { + ComponentSpec cs = new ComponentSpec(); + TestComponentSpec test = new TestComponentSpec(); + cs.createComponentSpecFromString(test.getCs()); + + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, "", 'o', ""); + + ArrayList<String> imps = new ArrayList<String>(); + + imps.add("http://www.getcloudify.org/spec/cloudify/3.4/types.yaml"); + imps.add("https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.5/k8splugin_types.yaml"); + imps.add("https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml"); + assertEquals(bp.getImports(), imps); + } + + @Test + public void inputTest() { + ComponentSpec cs = new ComponentSpec(); + cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); + + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, "", 'o', ""); + + TreeMap<String, LinkedHashMap<String, Object>> inputs = new TreeMap<String, LinkedHashMap<String, Object>>(); + + //mr inputs + LinkedHashMap<String, Object> stringType = new LinkedHashMap<String, Object>(); + stringType.put("type", "string"); + inputs.put("TEST_PUB_MR_publish_url", stringType); + inputs.put("TEST_SUB_MR_subscribe_url", stringType); + + //necessary inputs + LinkedHashMap<String, Object> tag = new LinkedHashMap<String, Object>(); + tag.put("type", "string"); + String tester = "test.tester"; + tag.put("default", '"' + tester + '"'); + String tagVersion = "tag_version"; + inputs.put("tag_version", tag); + + inputs.put("log_directory", stringType); + + + LinkedHashMap<String, Object> port = new LinkedHashMap<String, Object>(); + port.put("type", "string"); + port.put("description", "Kubernetes node port on which collector is exposed"); + String p = "'30235'"; + port.put("default", '"' + p + '"'); + inputs.put("external_port", port); + + LinkedHashMap<String, Object> rep = new LinkedHashMap<String, Object>(); + rep.put("type", "integer"); + rep.put("description", "number of instances"); + rep.put("default", 1); + inputs.put("replicas", rep); + + //parmaeter input + LinkedHashMap<String, Object> test = new LinkedHashMap<String, Object>(); + test.put("type", "string"); + String testParam = "test-param-1"; + test.put("default", '"' + testParam + '"'); + inputs.put("testParam1", test); + + //mr/dr inputs + inputs.put("TEST-PUB-DR_delivery_url", stringType); + inputs.put("TEST-PUB-DR_location", stringType); + inputs.put("TEST-PUB-DR_password", stringType); + inputs.put("TEST-PUB-DR_subscriber_id", stringType); + inputs.put("TEST-PUB-DR_username", stringType); + inputs.put("TEST-SUB-DR_delivery_url", stringType); + inputs.put("TEST-SUB-DR_location", stringType); + inputs.put("TEST-SUB-DR_password", stringType); + inputs.put("TEST-SUB-DR_subscriber_id", stringType); + inputs.put("TEST-SUB-DR_username", stringType); + inputs.put("TEST_PUB_MR_publish_url", stringType); + inputs.put("TEST_SUB_MR_subscribe_url", stringType); + + assertEquals(bp.getInputs(), inputs); + } + + @Test + public void interfaceTest() { + ComponentSpec cs = new ComponentSpec(); + cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); + + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, "", 'o', ""); + + OnapNode node = (OnapNode) bp.getNode_templates().get("test.component.spec"); + + OnapNode testNode = new OnapNode(); + + //set the type + testNode.setType("dcae.nodes.ContainerizedPlatformComponent"); + + ArrayList<String> ports = new ArrayList<String>(); + ports.add("concat: [\"80:\", {get_input: external_port }]"); + ports.add("concat: [\"99:\", {get_input: external_port }]"); + + + + assertEquals(node.getInterfaces().get("cloudify.interfaces.lifecycle").getStart().getInputs().getPorts(), ports); + } + + @Test + public void parametersTest() { + ComponentSpec cs = new ComponentSpec(); + cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); + + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, "", 'o', ""); + + OnapNode node = (OnapNode) bp.getNode_templates().get("test.component.spec"); + + GetInput par = (GetInput) node.getProperties().getApplication_config().getParams().get("testParam1"); + assertEquals(par.getGet_input(), "testParam1"); + } + + @Test + public void streamPublishesTest() { + ComponentSpec cs = new ComponentSpec(); + cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); + + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, "", 'o', ""); + + OnapNode node = (OnapNode) bp.getNode_templates().get("test.component.spec"); + + assertEquals(node.getProperties().getApplication_config().getStream_publishes().get("TEST-PUB-DR").getDmaap_info().getUsername().getGet_input(), "TEST-PUB-DR_username"); + } + + + + + +} |