summaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-02-19 12:35:04 +0200
committerMichael Lando <ml636r@att.com>2017-02-19 12:35:04 +0200
commitf5f13c4f6b6fe3b4d98e349dfd7db59339803436 (patch)
tree72caffc93fab394ffa3b761505775331f1c559b9 /openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org
parent451a3400b76511393c62a444f588a4ed15f4a549 (diff)
push addional code
Change-Id: Ia427bb3460cda3a896f8faced2de69eaf3807b74 Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org')
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java245
1 files changed, 245 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java
new file mode 100644
index 0000000000..6bc5a0e864
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/src/test/java/org/openecomp/sdc/enrichment/impl/EnrichmentManagerImplTest.java
@@ -0,0 +1,245 @@
+package org.openecomp.sdc.enrichment.impl;
+
+import org.openecomp.sdc.enrichment.impl.tosca.ComponentInfo;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
+import org.openecomp.sdc.tosca.services.ToscaFileOutputService;
+import org.openecomp.sdc.tosca.services.impl.ToscaFileOutputServiceCsarImpl;
+import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
+import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.core.enrichment.api.EnrichmentManager;
+import org.openecomp.core.enrichment.factory.EnrichmentManagerFactory;
+
+import org.openecomp.core.enrichment.types.CeilometerInfo;
+import org.openecomp.core.enrichment.types.ComponentCeilometerInfo;
+import org.openecomp.core.utilities.file.FileUtils;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+import java.io.*;
+import java.net.URL;
+import java.nio.file.NotDirectoryException;
+import java.util.*;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import static org.junit.Assert.assertEquals;
+
+
+public class EnrichmentManagerImplTest {
+
+
+ private static ToscaServiceModel loadToscaServiceModel(String serviceTemplatesPath,
+ String globalServiceTemplatesPath,
+ String entryDefinitionServiceTemplate)
+ throws IOException {
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
+ Map<String, ServiceTemplate> serviceTemplates = new HashMap<>();
+ if (entryDefinitionServiceTemplate == null) {
+ entryDefinitionServiceTemplate = "MainServiceTemplate.yaml";
+ }
+
+ loadServiceTemplates(serviceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates);
+ if (globalServiceTemplatesPath != null) {
+ loadServiceTemplates(globalServiceTemplatesPath, toscaExtensionYamlUtil, serviceTemplates);
+ }
+
+ return new ToscaServiceModel(null, serviceTemplates, entryDefinitionServiceTemplate);
+ }
+
+ private static void loadServiceTemplates(String serviceTemplatesPath,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil,
+ Map<String, ServiceTemplate> serviceTemplates)
+ throws IOException {
+ URL urlFile = EnrichmentManagerImplTest.class.getResource(serviceTemplatesPath);
+ if (urlFile != null) {
+ File pathFile = new File(urlFile.getFile());
+ File[] files = pathFile.listFiles();
+ if (files != null) {
+ addServiceTemplateFiles(serviceTemplates, files, toscaExtensionYamlUtil);
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ } else {
+ throw new NotDirectoryException(serviceTemplatesPath);
+ }
+ }
+
+ private static void addServiceTemplateFiles(Map<String, ServiceTemplate> serviceTemplates,
+ File[] files,
+ ToscaExtensionYamlUtil toscaExtensionYamlUtil)
+ throws IOException {
+ for (File file : files) {
+ if (!file.getName().equals("CSR.zip") && !file.isDirectory()) {
+ try (InputStream yamlFile = new FileInputStream(file)) {
+ ServiceTemplate serviceTemplateFromYaml =
+ toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
+ serviceTemplates.put(file.getName(), serviceTemplateFromYaml);
+ try {
+ yamlFile.close();
+ } catch (IOException ignore) {
+ }
+ } catch (FileNotFoundException e) {
+ throw e;
+ } catch (IOException e) {
+ throw e;
+ }
+ }
+ }
+ }
+
+// @Test
+ public void testEnrichmentManagerImpl() throws Exception {
+ Assert.assertTrue(
+ EnrichmentManagerFactory.getInstance().createInterface() instanceof EnrichmentManagerImpl);
+ }
+
+// @Test
+ public void testEnrichModel() throws Exception {
+ ToscaServiceModel toscaServiceModel =
+ loadToscaServiceModel("/extractServiceComposition/onlyComponents/",
+ "/extractServiceComposition/toscaGlobalServiceTemplates/", "OnlyComponentsST.yaml");
+ EnrichmentManager enrichmentManager = EnrichmentManagerFactory.getInstance().createInterface();
+ enrichmentManager.initInput("vsp_enrich", new Version(0, 1));
+ enrichmentManager.addModel(toscaServiceModel);
+
+ String[] componentNames = new String[]{"org.openecomp.resource.vfc.nodes.heat.pcrf_psm",
+ "org.openecomp.resource.vfc.nodes.heat.pcm"};
+ ComponentInfo componentInfo = new ComponentInfo();
+
+ CeilometerInfo ceilometerInfo;
+ ComponentCeilometerInfo componentCeilometerInfo = new ComponentCeilometerInfo();
+ componentCeilometerInfo.setCeilometerInfoList(new ArrayList<>());
+ componentInfo.setCeilometerInfo(componentCeilometerInfo);
+
+ for (String componentName : componentNames) {
+ ceilometerInfo =
+ getCeilometerInfo("instance", "Gauge", "instance", "compute", "Existence of instance");
+ componentInfo.getCeilometerInfo().getCeilometerInfoList().add(ceilometerInfo);
+ ceilometerInfo = getCeilometerInfo("memory", "Gauge", "MB", "compute",
+ "Volume of RAM allocated to the instance");
+ componentInfo.getCeilometerInfo().getCeilometerInfoList().add(ceilometerInfo);
+ ceilometerInfo = getCeilometerInfo("cpu", "Cumulative", "ns", "compute", "CPU time used");
+ componentInfo.getCeilometerInfo().getCeilometerInfoList().add(ceilometerInfo);
+ enrichmentManager.addEntityInput(componentName, componentInfo);
+ }
+
+ enrichmentManager.enrich();
+
+ File csrFile = getToscaModelAsFile(toscaServiceModel);
+ compareActualAndExpected(csrFile);
+
+ }
+
+// @Test
+ public void testAllEnrichModel() throws Exception {
+ ToscaServiceModel toscaServiceModel = loadToscaServiceModel("/extractServiceComposition/all/",
+ "/extractServiceComposition/toscaGlobalServiceTemplates/", "OnlyComponentsST.yaml");
+ EnrichmentManager enrichmentManager = EnrichmentManagerFactory.getInstance().createInterface();
+ enrichmentManager.initInput("vsp_enrich", new Version(0, 1));
+ enrichmentManager.addModel(toscaServiceModel);
+
+ String[] componentNames = new String[]{"org.openecomp.resource.vfc.nodes.heat.pcrf_psm",
+ "org.openecomp.resource.vfc.nodes.heat.pcm"};
+ ComponentInfo componentInfo = new ComponentInfo();
+
+ CeilometerInfo ceilometerInfo;
+ ComponentCeilometerInfo componentCeilometerInfo = new ComponentCeilometerInfo();
+ componentCeilometerInfo.setCeilometerInfoList(new ArrayList<>());
+ componentInfo.setCeilometerInfo(componentCeilometerInfo);
+
+ for (String componentName : componentNames) {
+ ceilometerInfo =
+ getCeilometerInfo("instance", "Gauge", "instance", "compute", "Existence of instance");
+ componentInfo.getCeilometerInfo().getCeilometerInfoList().add(ceilometerInfo);
+ ceilometerInfo = getCeilometerInfo("memory", "Gauge", "MB", "compute",
+ "Volume of RAM allocated to the instance");
+ componentInfo.getCeilometerInfo().getCeilometerInfoList().add(ceilometerInfo);
+ ceilometerInfo = getCeilometerInfo("cpu", "Cumulative", "ns", "compute", "CPU time used");
+ componentInfo.getCeilometerInfo().getCeilometerInfoList().add(ceilometerInfo);
+ enrichmentManager.addEntityInput(componentName, componentInfo);
+ }
+
+ enrichmentManager.enrich();
+
+ File csrFile = getToscaModelAsFile(toscaServiceModel);
+ compareActualAndExpected(csrFile);
+
+ }
+
+ private CeilometerInfo getCeilometerInfo(String name, String type, String unit, String category,
+ String description) {
+ CeilometerInfo ceilometerInfo = new CeilometerInfo();
+ ceilometerInfo.setName(name);
+ ceilometerInfo.setType(type);
+ ceilometerInfo.setUnit(unit);
+ ceilometerInfo.setCategory(category);
+ ceilometerInfo.setDescription(description);
+ return ceilometerInfo;
+ }
+
+ private File getToscaModelAsFile(ToscaServiceModel toscaServiceModel) throws IOException {
+
+ URL inputFilesUrl =
+ EnrichmentManagerImplTest.class.getResource("/extractServiceComposition/onlyComponents");
+ String path = inputFilesUrl.getPath();
+
+
+ File file = new File(path + "/" + "CSR.zip");
+ file.createNewFile();
+
+ try (FileOutputStream fos = new FileOutputStream(file))
+
+ {
+ ToscaFileOutputService toscaFileOutputService = new ToscaFileOutputServiceCsarImpl();
+ fos.write(toscaFileOutputService.createOutputFile(toscaServiceModel, null));
+ }
+
+ return file;
+ }
+
+ protected void compareActualAndExpected(File actualFile) throws IOException {
+
+ URL url = EnrichmentManagerImplTest.class
+ .getResource("/extractServiceComposition/onlyComponents/expectedOutput");
+ Set<String> expectedResultFileNameSet = new HashSet<>();
+ Map<String, byte[]> expectedResultMap = new HashMap<>();
+ String path = url.getPath();
+ File pathFile = new File(path);
+ File[] files = pathFile.listFiles();
+ org.junit.Assert.assertNotNull("manifest files is empty", files);
+ for (File expectedFile : files) {
+ expectedResultFileNameSet.add(expectedFile.getName());
+ try (FileInputStream input = new FileInputStream(expectedFile)) {
+ expectedResultMap.put(expectedFile.getName(), FileUtils.toByteArray(input));
+ }
+ }
+
+ try (FileInputStream fis = new FileInputStream(actualFile);
+ ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis))) {
+ ZipEntry entry;
+ String name;
+ String expected;
+ String actual;
+
+ while ((entry = zis.getNextEntry()) != null) {
+
+ name = entry.getName()
+ .substring(entry.getName().lastIndexOf(File.separator) + 1, entry.getName().length());
+ if (expectedResultFileNameSet.contains(name)) {
+ expected = new String(expectedResultMap.get(name)).trim().replace("\r", "");
+ actual = new String(FileUtils.toByteArray(zis)).trim().replace("\r", "");
+ assertEquals("difference in file: " + name, expected, actual);
+
+ expectedResultFileNameSet.remove(name);
+ }
+ }
+ if (expectedResultFileNameSet.isEmpty()) {
+ expectedResultFileNameSet.forEach(System.out::println);
+ }
+ }
+ assertEquals(0, expectedResultFileNameSet.size());
+ }
+
+
+} \ No newline at end of file