1 /*============LICENSE_START=======================================================
3 ================================================================================
4 Copyright (c) 2020 Nokia. All rights reserved.
5 Copyright (c) 2020 AT&T. All rights reserved.
6 ================================================================================
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 ============LICENSE_END=========================================================
21 package org.onap.blueprintgenerator.test;
24 import org.junit.Test;
25 import org.junit.runners.Parameterized;
26 import org.onap.blueprintgenerator.model.common.Input;
27 import org.onap.blueprintgenerator.model.common.Node;
28 import org.onap.blueprintgenerator.model.common.OnapBlueprint;
29 import org.onap.blueprintgenerator.model.common.ExternalCertificateParameters;
30 import org.onap.blueprintgenerator.model.common.ExternalTlsInfo;
31 import org.onap.blueprintgenerator.model.dmaap.TlsInfo;
34 import java.nio.file.Paths;
35 import java.util.Arrays;
36 import java.util.LinkedHashMap;
37 import java.util.List;
39 import static org.junit.Assert.assertEquals;
40 import static org.junit.Assert.assertFalse;
41 import static org.junit.Assert.assertNotNull;
42 import static org.junit.Assert.assertNull;
46 //@RunWith(Parameterized.class)
47 public class TlsInfoTest extends BlueprintGeneratorTests {
49 @Parameterized.Parameter
52 @Parameterized.Parameters(name = "Blueprint type: {0}")
53 public static List<Character> data() {
54 return Arrays.asList('o', 'd');
59 public void useTlsTrueAndUseExternalTlsTrueTest(){
60 //Input input = input.setComponentSpecPath(componentSpecPath + "testComponentSpec_withTlsTrueAndExternalTlsTrue.json");
61 OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", useTlsTrueAndUseExternalTlsTrueTest).toFile().getAbsolutePath());
63 assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(bp, true);
64 assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, true);
68 public void useTlsFalseAndUseExternalTlsFalseTest(){
69 OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", useTlsFalseAndUseExternalTlsFalseTest).toFile().getAbsolutePath());
71 assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(bp, false);
72 assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, false);
76 public void useTlsTrueAndNoExternalTlsFlagTest(){
77 OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", useTlsTrueAndNoExternalTlsFlagTest).toFile().getAbsolutePath());
79 assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, true);
80 assertBlueprintHasNoExternalTlsInfo(bp);
84 public void noTlsInfo(){
85 OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", noTlsInfo).toFile().getAbsolutePath());
87 assertBlueprintHasNoTlsInfo(bp);
88 assertBlueprintHasNoExternalTlsInfo(bp);
91 private void assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(OnapBlueprint bp, boolean useFlagDefault) {
92 //should create proper inputs
93 assertContainsInputWithDefault(bp, "external_cert_use_external_tls", useFlagDefault);
94 assertContainsInputWithDefault(bp, "external_cert_ca_name", "\"RA\"");
95 assertContainsInputWithDefault(bp, "external_cert_cert_type", "\"P12\"");
96 assertContainsInputWithDefault(bp, "external_cert_common_name", "\"sample.onap.org\"");
97 assertContainsInputWithDefault(bp, "external_cert_sans",
98 "\"sample.onap.org:component.sample.onap.org\"");
100 Node node = bp.getNode_templates().get("test.component.spec");
102 //should create proper externalTlsInfo object in node properties
103 ExternalTlsInfo externalTlsInfo = node.getProperties().getExternal_cert();
104 assertNotNull(externalTlsInfo);
106 assertEquals("external_cert_ca_name", externalTlsInfo.getCaName().getBpInputName());
107 assertEquals("external_cert_cert_type", externalTlsInfo.getCertType().getBpInputName());
108 assertEquals("external_cert_use_external_tls", externalTlsInfo.getUseExternalTls().getBpInputName());
109 assertEquals("/opt/app/dcae-certificate/", externalTlsInfo.getExternalCertDirectory());
111 ExternalCertificateParameters extCertParams = externalTlsInfo.getExternalCertificateParameters();
112 assertNotNull(extCertParams);
114 assertEquals("external_cert_common_name", extCertParams.getCommonName().getBpInputName());
115 assertEquals("external_cert_sans", extCertParams.getSans().getBpInputName());
118 private void assertBlueprintContainsTlsInfoWithUseFlagDefault(OnapBlueprint bp, boolean useFlagDefault) {
119 //shold create proper inputs
120 assertContainsInputWithDefault(bp, "use_tls", useFlagDefault);
122 Node node = bp.getNode_templates().get("test.component.spec");
124 //should create proper tlsInfo object in node properties
125 TlsInfo tlsInfo = node.getProperties().getTls_info();
126 assertEquals("use_tls", tlsInfo.getUseTls().getBpInputName());
127 assertEquals("/opt/app/dcae-certificate/", tlsInfo.getCertDirectory());
131 private void assertBlueprintHasNoExternalTlsInfo(OnapBlueprint bp) {
132 //should not create inputs for external tls
133 assertFalse(bp.getInputs().containsKey("external_cert_use_external_tls"));
134 assertFalse(bp.getInputs().containsKey("external_cert_common_name"));
135 assertFalse(bp.getInputs().containsKey("external_cert_ca_name"));
136 assertFalse(bp.getInputs().containsKey("external_cert_sans"));
138 Node node = bp.getNode_templates().get("test.component.spec");
140 //should not create externalTlsInfo object in node properties
141 ExternalTlsInfo externalTlsInfo = node.getProperties().getExternal_cert();
142 assertNull(externalTlsInfo);
146 private void assertBlueprintHasNoTlsInfo(OnapBlueprint bp) {
147 //should not create inputs for tls
148 assertFalse(bp.getInputs().containsKey("use_tls"));
150 Node node = bp.getNode_templates().get("test.component.spec");
152 //should not create tlsInfo object in node properties
153 assertNull(node.getProperties().getTls_info());
156 private void assertContainsInputWithDefault(OnapBlueprint bp, String inputName, Object defaultValue) {
157 LinkedHashMap<String, Object> input = bp.getInputs().get(inputName);
158 assertNotNull(input);
159 assertEquals(defaultValue, input.get("default"));
162 private OnapBlueprint createBlueprintFromFile(String path) {
163 onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(path);
164 Input input = onapTestUtils.getInput(path, "", "", "", "o", "");
165 OnapBlueprint onapBlueprint = onapBlueprintService.createBlueprint(onapComponentSpec, input);
166 return onapBlueprint;