summaryrefslogtreecommitdiffstats
path: root/mod2/helm-generator/helmchartgenerator-core/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'mod2/helm-generator/helmchartgenerator-core/src/test')
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartBuilderTest.java54
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartGeneratorTest.java58
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartMuseumDistributorTest.java74
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartTemplateStructureValidatorTest.java14
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecParserTest.java5
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecValidatorTest.java2
-rw-r--r--mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/KeyValueMergerTest.java100
7 files changed, 301 insertions, 6 deletions
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartBuilderTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartBuilderTest.java
new file mode 100644
index 0000000..dd19382
--- /dev/null
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartBuilderTest.java
@@ -0,0 +1,54 @@
+ /** # ============LICENSE_START=======================================================
+ * # Copyright (c) 2021 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.dcaegen2.platform.helmchartgenerator;
+
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.api.extension.ExtendWith;
+ import org.mockito.Mock;
+ import org.mockito.Mockito;
+ import org.mockito.junit.jupiter.MockitoExtension;
+ import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.ChartBuilder;
+ import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.ChartGenerator;
+ import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.ComponentSpecParser;
+ import org.onap.dcaegen2.platform.helmchartgenerator.validation.ChartTemplateStructureValidator;
+
+ import static org.mockito.ArgumentMatchers.any;
+
+ @ExtendWith(MockitoExtension.class)
+class ChartBuilderTest {
+
+ @Mock
+ private ChartGenerator chartGenerator;
+
+ @Mock
+ private ComponentSpecParser specParser;
+
+ @Mock
+ private ChartTemplateStructureValidator validator;
+
+ @Test
+ void testChartBuilderSteps() throws Exception{
+ ChartBuilder builder = new ChartBuilder(specParser, chartGenerator, validator);
+ builder.build("someSpec", "someChartLocation", "someOutputLocation", "someSpecSchemaLocation");
+
+ Mockito.verify(specParser, Mockito.times(1)).extractChartInfo(any(), any(), any());
+ Mockito.verify(chartGenerator, Mockito.times(1)).generate(any(), any(), any());
+ Mockito.verify(validator, Mockito.times(1)).validateChartTemplateStructure(any());
+ }
+}
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartGeneratorTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartGeneratorTest.java
new file mode 100644
index 0000000..1c2c9bc
--- /dev/null
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartGeneratorTest.java
@@ -0,0 +1,58 @@
+/*
+ * # ============LICENSE_START=======================================================
+ * # Copyright (c) 2021 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.dcaegen2.platform.helmchartgenerator;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.ChartGenerator;
+import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.HelmClient;
+import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.KeyValueMerger;
+import org.onap.dcaegen2.platform.helmchartgenerator.models.chartinfo.ChartInfo;
+
+import static org.mockito.ArgumentMatchers.any;
+
+@ExtendWith(MockitoExtension.class)
+class ChartGeneratorTest {
+
+ @Mock
+ private KeyValueMerger kvMerger;
+
+ @Mock
+ private HelmClient helmClient;
+
+ @Mock
+ private Utils utils;
+
+ @Test
+ void testChartGenerationSteps() throws Exception{
+ ChartGenerator chartGenerator = new ChartGenerator(helmClient, kvMerger, utils);
+ Mockito.when(utils.cloneFileToTempLocation(any())).thenReturn(any());
+
+ chartGenerator.generate("src/test/input/blueprint", new ChartInfo(), "src/test/output");
+
+ Mockito.verify(kvMerger, Mockito.times(1)).mergeValuesToChart(any(), any());
+ Mockito.verify(helmClient, Mockito.times(1)).lint(any());
+ Mockito.verify(helmClient, Mockito.times(1)).packageChart(any(), any());
+ }
+
+}
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartMuseumDistributorTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartMuseumDistributorTest.java
new file mode 100644
index 0000000..c0d0663
--- /dev/null
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartMuseumDistributorTest.java
@@ -0,0 +1,74 @@
+/*
+ * # ============LICENSE_START=======================================================
+ * # Copyright (c) 2021 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.dcaegen2.platform.helmchartgenerator;
+
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import org.apache.commons.io.FileUtils;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.onap.dcaegen2.platform.helmchartgenerator.distribution.ChartMuseumDistributor;
+
+import java.io.File;
+import java.io.IOException;
+
+public class ChartMuseumDistributorTest {
+
+ ChartMuseumDistributor distributor;
+
+ public static MockWebServer mockChartMuseumServer;
+
+ private static File mockChartFile;
+
+ @BeforeAll
+ static void init() throws IOException {
+ mockChartMuseumServer = new MockWebServer();
+ mockChartMuseumServer.start();
+ mockChartFile = File.createTempFile("dcae-ves-collector-1.8.0","tgz");
+ }
+
+ @BeforeEach
+ void setUp(){
+ String baseUrl = String.format("http://localhost:%s",
+ mockChartMuseumServer.getPort());
+ distributor = new ChartMuseumDistributor(baseUrl, "mockUsername", "mockPassword");
+ }
+
+ @Test
+ void distribute() throws Exception{
+ mockChartMuseumServer.enqueue(getMock201Response());
+ distributor.distribute(mockChartFile);
+ }
+
+ private MockResponse getMock201Response() {
+ return new MockResponse()
+ .setResponseCode(201)
+ .setBody("{\"saved\": true}");
+ }
+
+
+ @AfterAll
+ static void tearDown() throws IOException {
+ mockChartMuseumServer.shutdown();
+ FileUtils.deleteQuietly(mockChartFile);
+ }
+}
+
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartTemplateStructureValidatorTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartTemplateStructureValidatorTest.java
index 9bef191..3e94b64 100644
--- a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartTemplateStructureValidatorTest.java
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ChartTemplateStructureValidatorTest.java
@@ -18,23 +18,31 @@
package org.onap.dcaegen2.platform.helmchartgenerator;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.onap.dcaegen2.platform.helmchartgenerator.validation.ChartTemplateStructureValidator;
+import org.onap.dcaegen2.platform.helmchartgenerator.validation.ChartTemplateStructureValidatorImpl;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
public class ChartTemplateStructureValidatorTest {
+ private ChartTemplateStructureValidatorImpl validator;
+
+ @BeforeEach
+ void setUp() {
+ validator = new ChartTemplateStructureValidatorImpl();
+ }
+
@Test
void validateTemplateStructure(){
String validStructureLocation = "src/test/input/blueprint";
- assertDoesNotThrow(() -> ChartTemplateStructureValidator.validateChartTemplateStructure(validStructureLocation));
+ assertDoesNotThrow(() -> validator.validateChartTemplateStructure(validStructureLocation));
}
@Test
void invalidateTemplateStructureShouldThrowRuntimeError() {
String invalidStructureLocation = "test";
- assertThrows(RuntimeException.class, () -> ChartTemplateStructureValidator.validateChartTemplateStructure(invalidStructureLocation));
+ assertThrows(RuntimeException.class, () -> validator.validateChartTemplateStructure(invalidStructureLocation));
}
}
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecParserTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecParserTest.java
index c14edda..0f157d3 100644
--- a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecParserTest.java
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecParserTest.java
@@ -44,7 +44,7 @@ class ComponentSpecParserTest {
@BeforeEach
void setUp() {
- parser = new ComponentSpecParser(validator);
+ parser = new ComponentSpecParser(validator, new Utils());
}
@Test
@@ -183,4 +183,5 @@ class ComponentSpecParserTest {
assertThat(secret1.get("password")).isEqualTo("{{ .Values.postgres.config.pgUserPassword }}");
assertThat(secret1.get("passwordPolicy")).isEqualTo("generate");
}
-} \ No newline at end of file
+}
+
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecValidatorTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecValidatorTest.java
index c987c11..a9124b4 100644
--- a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecValidatorTest.java
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/ComponentSpecValidatorTest.java
@@ -37,7 +37,7 @@ public class ComponentSpecValidatorTest {
@BeforeEach
void setUp() {
- validator = new ComponentSpecValidatorImpl();
+ validator = new ComponentSpecValidatorImpl(new Utils());
}
@Test
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/KeyValueMergerTest.java b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/KeyValueMergerTest.java
new file mode 100644
index 0000000..4082170
--- /dev/null
+++ b/mod2/helm-generator/helmchartgenerator-core/src/test/java/org/onap/dcaegen2/platform/helmchartgenerator/KeyValueMergerTest.java
@@ -0,0 +1,100 @@
+/*
+ * # ============LICENSE_START=======================================================
+ * # Copyright (c) 2021 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.dcaegen2.platform.helmchartgenerator;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.onap.dcaegen2.platform.helmchartgenerator.chartbuilder.KeyValueMerger;
+import org.onap.dcaegen2.platform.helmchartgenerator.models.chartinfo.ChartInfo;
+import org.onap.dcaegen2.platform.helmchartgenerator.models.chartinfo.Metadata;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.mockito.ArgumentMatchers.any;
+
+@ExtendWith(MockitoExtension.class)
+class KeyValueMergerTest {
+
+ private KeyValueMerger merger;
+
+ @Mock
+ private Yaml yamlHelper;
+
+ private File chartDir;
+
+ @BeforeEach
+ void setUp() {
+ merger = new KeyValueMerger(yamlHelper);
+ }
+
+ @Test
+ void mergeValuesToChart() throws IOException {
+ ChartInfo chartInfo = prepareChartInfo();
+ chartDir = prepareChartDir();
+
+ Mockito.when(yamlHelper.load(any(InputStream.class))).thenReturn(new HashMap<String, Object>());
+
+ merger.mergeValuesToChart(chartInfo, chartDir);
+ Mockito.verify(yamlHelper, Mockito.times(2)).dump(any(HashMap.class), any(PrintWriter.class));
+ }
+
+ @AfterEach
+ void tearDown(){
+ FileUtils.deleteQuietly(chartDir);
+ }
+
+ private File prepareChartDir() throws IOException {
+ final Path chartDir = Files.createTempDirectory("chartDir");
+ Files.createFile(chartDir.resolve("Chart.yaml"));
+ Files.createFile(chartDir.resolve("values.yaml"));
+ return chartDir.toFile();
+ }
+
+ private ChartInfo prepareChartInfo() {
+ ChartInfo chartInfo = new ChartInfo();
+
+ Metadata metadata = new Metadata();
+ metadata.setName("someComponent");
+ metadata.setVersion("someVersion");
+ metadata.setDescription("someDescription");
+
+ Map<String, Object> values = new HashMap<>();
+ values.put("someKey", "someValue");
+
+ chartInfo.setMetadata(metadata);
+ chartInfo.setValues(values);
+
+ return chartInfo;
+ }
+}
+