aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authormark.j.leonard <mark.j.leonard@gmail.com>2018-11-27 11:49:58 +0000
committermark.j.leonard <mark.j.leonard@gmail.com>2018-11-27 11:49:58 +0000
commit91d6d53930576dba11a92d25e20795c1ba1f8817 (patch)
tree7b54b14b37c9b3d1320f33046b09b874ec12c75f /src/test
parent36606e8fbcae1248aff9740717a666120cf9d8a0 (diff)
Refactor model generation algorithm
Reorganize the Service and Resource Model generation code for readability. Resort methods to put public before private. Rename generateService() to generateAllArtifacts() Reimplement this method such that the NodeTemplate list is iterated once only. This is intended to simplify future changes to the code. Change-Id: Ie0c6003eab99f42945747c6d79827881e05afc87 Issue-ID: AAI-1884 Signed-off-by: mark.j.leonard <mark.j.leonard@gmail.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java47
1 files changed, 35 insertions, 12 deletions
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 6cf6d31..3cbaa13 100644
--- a/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java
+++ b/src/test/java/org/onap/aai/babel/parser/TestArtifactGeneratorToscaParser.java
@@ -30,9 +30,11 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Properties;
+
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.sdc.tosca.parser.api.ISdcCsarHelper;
@@ -41,7 +43,8 @@ import org.onap.sdc.toscaparser.api.NodeTemplate;
import org.onap.sdc.toscaparser.api.SubstitutionMappings;
/**
- * Direct tests of the TOSCA parser-based Artifact Generator, to cover exceptional cases.
+ * Direct tests of the TOSCA parser-based Artifact Generator {@link ArtifactGeneratorToscaParser}., to cover exceptional
+ * cases.
*/
public class TestArtifactGeneratorToscaParser {
@@ -49,14 +52,23 @@ public class TestArtifactGeneratorToscaParser {
private static final String TEST_UUID = "1234";
/**
- * Process a dummy Node Template object for a Service. A WARNING should be logged for the missing metadata.
+ * Process an Allotted Resource that does not have a Providing Service.
*/
- @Test
- public void testMissingServiceData() {
+ @Test(expected = IllegalArgumentException.class)
+ public void testMissingProvidingService() {
List<NodeTemplate> nodeTemplateList = Collections.singletonList(buildNodeTemplate("name", "BlockStorage"));
- ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(null);
- parser.processServiceTosca(null, Collections.emptyMap(), nodeTemplateList);
- parser.processResourceToscas(nodeTemplateList, null);
+ new ArtifactGeneratorToscaParser(null).processResourceModels(new AllotedResource(), nodeTemplateList);
+ }
+
+ /**
+ *
+ * Add a CR (a type of Resource which is not a Providing Service) to a Resource Model.
+ */
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddResourceNotProvidingService() {
+ List<NodeTemplate> nodeTemplateList = Collections.singletonList(buildNodeTemplate("testCR", "CR"));
+ final Resource dummyResource = new AllotedResource(); // Any Resource to which the CR can be added
+ new ArtifactGeneratorToscaParser(null).processResourceModels(dummyResource, nodeTemplateList);
}
/**
@@ -72,22 +84,33 @@ public class TestArtifactGeneratorToscaParser {
ISdcCsarHelper helper = Mockito.mock(ISdcCsarHelper.class);
SubstitutionMappings sm = Mockito.mock(SubstitutionMappings.class);
- NodeTemplate serviceNode = buildNodeTemplate("service", "org.openecomp.resource.cr.a-collection-resource");
- serviceNode.setSubMappingToscaTemplate(sm);
- Mockito.when(helper.getNodeTemplateByName(serviceNode.getName())).thenReturn(serviceNode);
+ NodeTemplate serviceNodeTemplate = buildNodeTemplate("service",
+ "org.openecomp.resource.cr.a-collection-resource");
+ serviceNodeTemplate.setSubMappingToscaTemplate(sm);
+ Mockito.when(helper.getNodeTemplateByName(serviceNodeTemplate.getName())).thenReturn(serviceNodeTemplate);
ArrayList<Group> groups = new ArrayList<>();
groups.add(buildGroup("group", instanceGroupType));
- Mockito.when(helper.getGroupsOfOriginOfNodeTemplate(serviceNode)).thenReturn(groups);
+ Mockito.when(helper.getGroupsOfOriginOfNodeTemplate(serviceNodeTemplate)).thenReturn(groups);
ArtifactGeneratorToscaParser parser = new ArtifactGeneratorToscaParser(helper);
- List<Resource> resources = parser.processInstanceGroups(new InstanceGroup(), serviceNode);
+ List<Resource> resources = parser.processInstanceGroups(new InstanceGroup(), serviceNodeTemplate);
assertThat(resources.size(), is(1));
Resource resource = resources.get(0);
assertThat(resource.getModelNameVersionId(), is(equalTo(TEST_UUID)));
}
+ /**
+ * Create a NodeTemplate for unit testing purposes. In production code this object would only be created by the
+ * sdc-tosca parser.
+ *
+ * @param name
+ * name of the NodeTemplate
+ * @param type
+ * type of the NodeTemplate
+ * @return a new NodeTemplate object
+ */
private NodeTemplate buildNodeTemplate(String name, String type) {
LinkedHashMap<String, Object> nodeTemplateMap = new LinkedHashMap<>();
nodeTemplateMap.put(name, buildMap("type", type));