aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java
diff options
context:
space:
mode:
authorOfir Sonsino <os0695@att.com>2018-01-31 17:19:00 +0200
committerOfir Sonsino <os0695@att.com>2018-01-31 17:19:00 +0200
commit1cfb08779ea0e00be69e072a940b3063e049fe6b (patch)
tree6602a900387c8393ed0dcd81c0539381632903c6 /vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java
parent2f20b001b9243e0f8b44aecc768ec265fd538732 (diff)
org.onap migration
Change-Id: I52f0b2851f2c765752b6d21f49b32136d7d72a3d Issue-ID: VID-86 Signed-off-by: Ofir Sonsino <os0695@att.com>
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java154
1 files changed, 154 insertions, 0 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java b/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java
new file mode 100644
index 000000000..99f8ef38a
--- /dev/null
+++ b/vid-app-common/src/test/java/org/onap/vid/asdc/parser/ToscaParserImpl2Test.java
@@ -0,0 +1,154 @@
+package org.onap.vid.asdc.parser;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.google.common.collect.ImmutableList;
+import org.apache.log4j.Logger;
+import org.junit.Assert;
+import org.onap.vid.controller.WebConfig;
+import org.onap.vid.model.VfModule;
+import org.onap.vid.model.VolumeGroup;
+import org.onap.vid.properties.AsdcClientConfiguration;
+import org.openecomp.portalsdk.core.util.SystemProperties;
+import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.openecomp.sdc.toscaparser.api.Group;
+import org.openecomp.sdc.toscaparser.api.NodeTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
+import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.web.context.WebApplicationContext;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.*;
+
+@Test
+@ContextConfiguration(classes = { WebConfig.class, AsdcClientConfiguration.class, SystemProperties.class })
+@WebAppConfiguration
+public class ToscaParserImpl2Test extends AbstractTestNGSpringContextTests {
+
+ private final String myUUID = "myUUID";
+ private static final Logger log = Logger.getLogger(ToscaParserImpl2Test.class);
+
+ @Autowired
+ private ToscaParserImpl2 toscaParserImpl2;
+
+ @Autowired
+ private WebApplicationContext wac;
+
+ @BeforeMethod
+ private void verifyWiring() {
+ Assert.assertNotNull(wac);
+ Assert.assertNotNull(toscaParserImpl2);
+ }
+
+ @Test
+ public void testGetNFModuleFromVf() throws Exception {
+ ISdcCsarHelper csarHelper = getMockedSdcCsarHelper();
+
+ Map<String, VfModule> vfModulesFromVF = toscaParserImpl2.getVfModulesFromVF(csarHelper, myUUID);
+
+ assertThat(vfModulesFromVF, allOf(
+ aMapWithSize(2),
+ hasKey("withoutVol"),
+ hasKey("withVol")
+ ));
+
+ verify(csarHelper, only()).getVfModulesByVf(anyString());
+ }
+
+ @Test
+ public void testGetVolumeGroupsFromVF() throws Exception {
+ ISdcCsarHelper csarHelper = getMockedSdcCsarHelper();
+
+ Map<String, VolumeGroup> volumeGroupsFromVF = toscaParserImpl2.getVolumeGroupsFromVF(csarHelper, myUUID);
+
+ assertThat(volumeGroupsFromVF, allOf(
+ aMapWithSize(1),
+ hasKey("withVol")
+ ));
+
+ verify(csarHelper, only()).getVfModulesByVf(anyString());
+ }
+
+ private ISdcCsarHelper getMockedSdcCsarHelper() {
+ ISdcCsarHelper csarHelper = mock(ISdcCsarHelper.class);
+
+// ThreadLocalsHolder.setCollector(new ExceptionCollector("c:\\temp\\foo"));
+
+ Group withVol = createMinimalGroup("withVol", true);
+ Group withoutVol = createMinimalGroup("withoutVol", false);
+
+ when(csarHelper.getVfModulesByVf(myUUID))
+ .thenReturn(ImmutableList.of(withVol, withoutVol));
+
+ return csarHelper;
+ }
+
+ private static Group createMinimalGroup(String name, boolean isVolumeGroup) {
+ LinkedHashMap<String, Object>
+ templates,
+ properties,
+ metadata,
+ customDef,
+ vfModule,
+ vfModuleProperties,
+ volumeGroup;
+
+ templates = new LinkedHashMap<>();
+ templates.put("type", "org.onap.groups.VfModule");
+
+ properties = addNewNamedMap(templates, "properties");
+ properties.put("volume_group", isVolumeGroup);
+
+ metadata = addNewNamedMap(templates, "metadata");
+
+ ArrayList<NodeTemplate> memberNodes = new ArrayList<>();
+
+ customDef = new LinkedHashMap<>();
+ vfModule = addNewNamedMap(customDef, "org.onap.groups.VfModule");
+ vfModuleProperties = addNewNamedMap(vfModule, "properties");
+// vfModule.put("derived_from", "tosca.groups.Root");
+// vfModule.put("description", "Grouped all heat resources which are in the same VF Module");
+
+ volumeGroup = addNewNamedMap(vfModuleProperties, "volume_group");
+// volumeGroup.put("description", "volume_group");
+ volumeGroup.put("type", "boolean");
+ volumeGroup.put("default", false);
+ volumeGroup.put("required", true);
+
+
+ Group group = new Group(
+ name,
+ templates,
+ memberNodes,
+ customDef
+ );
+
+ try {
+ log.info(String.format("Built a group: %s",
+ (new com.fasterxml.jackson.databind.ObjectMapper())
+ .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
+ .writeValueAsString(group)
+ ));
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
+
+ return group;
+ }
+
+ private static LinkedHashMap<String, Object> addNewNamedMap(LinkedHashMap<String, Object> root, String key) {
+ LinkedHashMap<String, Object> properties = new LinkedHashMap<>();
+ root.put(key, properties);
+ return properties;
+ }
+
+}