2acd5a4e699fe58064059d21ed848540738a791b
[sdc/sdc-tosca.git] / sdc-tosca / src / test / java / org / onap / sdc / impl / ToscaParserMetadataTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * sdc-tosca
4  * ================================================================================
5  * Copyright (C) 2017 - 2019 AT&T Intellectual Property. 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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.sdc.impl;
22
23 import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
24 import org.onap.sdc.tosca.parser.config.ConfigurationManager;
25 import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
26 import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
27 import org.onap.sdc.toscaparser.api.NodeTemplate;
28 import org.onap.sdc.toscaparser.api.elements.Metadata;
29 import org.testng.annotations.Test;
30
31 import java.util.List;
32 import java.util.Map;
33
34 import static org.testng.Assert.assertEquals;
35 import static org.testng.Assert.assertNotNull;
36 import static org.testng.Assert.assertNull;
37
38 public class ToscaParserMetadataTest extends SdcToscaParserBasicTest {
39
40     //region getServiceMetadata
41     @Test
42     public void testGetServiceMetadata() {
43         Metadata serviceMetadata = fdntCsarHelper.getServiceMetadata();
44         assertNotNull(serviceMetadata);
45         assertEquals("78c72999-1003-4a35-8534-bbd7d96fcae3", serviceMetadata.getValue("invariantUUID"));
46         assertEquals("Service FDNT", serviceMetadata.getValue("name"));
47         assertEquals("true", String.valueOf(serviceMetadata.getValue("serviceEcompNaming")));
48     }
49
50     @Test
51     public void testServiceMetadata() {
52         Metadata metadata = rainyCsarHelperSingleVf.getServiceMetadata();
53         assertNull(metadata);
54     }
55     //endregion
56
57     //region getMetadataPropertyValue
58     @Test
59     public void testGetMetadataProperty(){
60         Metadata serviceMetadata = fdntCsarHelper.getServiceMetadata();
61         String metadataPropertyValue = fdntCsarHelper.getMetadataPropertyValue(serviceMetadata, "invariantUUID");
62         assertEquals("78c72999-1003-4a35-8534-bbd7d96fcae3", metadataPropertyValue);
63     }
64
65     @Test
66     public void testGetNullMetadataPropertyValue() {
67         String value = rainyCsarHelperMultiVfs.getMetadataPropertyValue(null, "XXX");
68         assertNull(value);
69     }
70
71     @Test
72     public void testGetMetadataByNullPropertyValue() {
73         Metadata metadata = rainyCsarHelperMultiVfs.getServiceMetadata();
74         String value = rainyCsarHelperMultiVfs.getMetadataPropertyValue(metadata, null);
75         assertNull(value);
76     }
77
78     @Test
79     public void testGetMetadataByEmptyPropertyValue() {
80         Metadata metadata =  rainyCsarHelperMultiVfs.getServiceMetadata();
81         String value = rainyCsarHelperMultiVfs.getMetadataPropertyValue(metadata, "");
82         assertNull(value);
83     }
84     //endregion
85
86     @Test
87     public void GetServiceNodeTemplateMetadataTypeCR() {
88         NodeTemplate nodeTemplate = csarHelperServiceWithCrs.getServiceNodeTemplateByNodeName("chaya best cr 0");
89         Metadata nodeTemplateMetadata = csarHelperServiceWithCrs.getNodeTemplateMetadata(nodeTemplate);
90         assertNotNull(nodeTemplateMetadata);
91         assertEquals(nodeTemplateMetadata.getValue("resourceVendorModelNumber"), "");
92         assertEquals(nodeTemplateMetadata.getValue("type"), "CR");
93         assertEquals(nodeTemplateMetadata.getValue("name"), "chaya best cr");
94         assertEquals(nodeTemplateMetadata.getValue("version"), "0.1");
95     }
96
97     //region getConformanceLevel
98     @Test
99     public void testSunnyGetConformanceLevel() {
100         String conformanceLevel = fdntCsarHelper.getConformanceLevel();
101         assertNotNull(conformanceLevel);
102         assertEquals("3.0", conformanceLevel);
103     }
104     //endregion
105
106     //region getServiceMetadataProperties
107     @Test
108     public void testNullServiceMetadataPropertiesMap() {
109         Map<String, Object> metadata = rainyCsarHelperSingleVf.getServiceMetadataProperties();
110         assertNull(metadata);
111     }
112
113     @Test
114     public void testServiceMetadataPropertiesMap() {
115         Map<String, Object> metadata = fdntCsarHelper.getServiceMetadataProperties();
116         assertNotNull(metadata);
117         assertEquals(metadata.size(),9);
118         assertEquals(metadata.get("namingPolicy"),"test");
119     }
120     //endregion
121
122     //region getServiceMetadataAllProperties
123     @Test
124     public void testNullServiceMetadataAllPropertiesMap() {
125         Map<String, String> metadata = rainyCsarHelperSingleVf.getServiceMetadataAllProperties();
126         assertNull(metadata);
127     }
128
129     @Test
130     public void testServiceMetadataAllPropertiesMap() {
131         Map<String, String> metadata = fdntCsarHelper.getServiceMetadataAllProperties();
132         assertNotNull(metadata);
133         assertEquals(metadata.size(),9);
134         assertEquals(metadata.get("namingPolicy"),"test");
135     }
136     //endregion
137
138     //region getNodeTemplateMetadata
139     @Test
140     public void testGetNodeTemplateMetadata() {
141         List<NodeTemplate> vfs = fdntCsarHelper.getServiceVfList();
142         Metadata metadata = fdntCsarHelper.getNodeTemplateMetadata(vfs.get(0));
143         assertNotNull(metadata);
144         assertEquals("VF", metadata.getValue("type"));
145         assertEquals("1.0", metadata.getValue("version"));
146     }
147
148     @Test
149     public void testGetNodeTemplateMetadataByNull() {
150         Metadata metadata = fdntCsarHelper.getNodeTemplateMetadata(null);
151         assertNull(metadata);
152     }
153     //endregion
154     
155     //QA tests region for US 319197 -port mirroring
156     
157         //getNodeTemplateMetadata (All Types)
158         @Test
159         public void GetServiceNodeTemplateMetadataTypeVF() {
160                 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("VF_1_V_port_1 0");
161                 Metadata nodeTemplateMetadata = QAServiceForToscaParserTests.getNodeTemplateMetadata(nodeTemplate);
162                 assertNotNull(nodeTemplateMetadata);
163                 assertEquals(nodeTemplateMetadata.getValue("resourceVendorRelease"), "12-12-12");
164                 assertEquals(nodeTemplateMetadata.getValue("type"), "VF");
165         }
166         
167         @Test
168         public void GetServiceNodeTemplateMetadataTypeVL() {
169                 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtVL 0");
170                 Metadata nodeTemplateMetadata = QAServiceForToscaParserTests.getNodeTemplateMetadata(nodeTemplate);
171                 assertNotNull(nodeTemplateMetadata);
172                 assertEquals(nodeTemplateMetadata.getValue("resourceVendorRelease"), "1.0.0.wd03");
173                 assertEquals(nodeTemplateMetadata.getValue("type"), "VL");
174         }
175         
176         @Test
177         public void GetServiceNodeTemplateMetadataTypeCP() {
178                 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("ExtCP 0");
179                 Metadata nodeTemplateMetadata = QAServiceForToscaParserTests.getNodeTemplateMetadata(nodeTemplate);
180                 assertNotNull(nodeTemplateMetadata);
181                 assertEquals(nodeTemplateMetadata.getValue("UUID"), "7a883088-5cab-4bfb-8d55-307d3ffd0758");
182                 assertEquals(nodeTemplateMetadata.getValue("type"), "CP");
183         }
184         
185         @Test
186         public void GetServiceNodeTemplateMetadataTypePNF() {
187                 NodeTemplate nodeTemplate = QAServiceForToscaParserTests.getServiceNodeTemplateByNodeName("PNF TEST 0");
188                 Metadata nodeTemplateMetadata = QAServiceForToscaParserTests.getNodeTemplateMetadata(nodeTemplate);
189                 assertNotNull(nodeTemplateMetadata);
190                 assertEquals(nodeTemplateMetadata.getValue("resourceVendorModelNumber"), "");
191                 assertEquals(nodeTemplateMetadata.getValue("type"), "PNF");
192         }
193         
194         //QA end region for US 319197 -port mirroring
195         
196     // Added by QA  //region getServiceMetadataAllProperties
197
198     @Test
199     public void testGetAllMetadataProperties() {
200         Metadata serviceMetadata = fdntCsarHelper.getServiceMetadata();
201         assertNotNull(serviceMetadata);
202         Map<String, String> allProperties = serviceMetadata.getAllProperties();
203         assertNotNull(allProperties);
204         String invariantUUID = allProperties.get("invariantUUID");
205         String UUID = allProperties.get("UUID");
206         String name = allProperties.get("name");
207         String description = allProperties.get("description");
208         String type = allProperties.get("type");
209         String category = allProperties.get("category");
210         String ecompGeneratedNaming = allProperties.get("ecompGeneratedNaming");
211         String namingPolicy = allProperties.get("namingPolicy");
212         String serviceEcompNaming = allProperties.get("serviceEcompNaming");
213
214         assertEquals(invariantUUID, "78c72999-1003-4a35-8534-bbd7d96fcae3");
215         assertEquals(UUID, "edd0a9f7-d084-4423-8461-a2eff4cb3eb6");
216         assertEquals(name, "Service FDNT");
217         assertEquals(description, "Service FDNT");
218         assertEquals(type, "Service");
219         assertEquals(category, "Network L1-3");
220         assertEquals(ecompGeneratedNaming, "true");
221         assertEquals(namingPolicy, "test");
222         assertEquals(serviceEcompNaming, "true");
223     }
224     //endregion
225
226   @Test
227   public void testCSARMissingConformanceLevelWithCustomErrorConfig() throws
228       SdcToscaParserException {
229
230     ConfigurationManager configurationManager = ConfigurationManager.getInstance();
231     try {
232       configurationManager.setErrorConfiguration("error-configuration-test.yaml");
233       SdcToscaParserFactory.setConfigurationManager(configurationManager);
234       ISdcCsarHelper missingCSARMetaCsarCustomConfig = getCsarHelper
235           ("csars/service-missing-csar-meta-file.csar");
236       String conformanceLevel = missingCSARMetaCsarCustomConfig.getConformanceLevel();
237       assertNotNull(conformanceLevel);
238       assertEquals(conformanceLevel, configurationManager.getConfiguration().getConformanceLevel()
239           .getMaxVersion());
240     }
241     finally {
242       configurationManager.setErrorConfiguration("error-configuration.yaml");
243       SdcToscaParserFactory.setConfigurationManager(configurationManager);
244     }
245
246   }
247
248   @Test(expectedExceptions = SdcToscaParserException.class)
249   public void testCSARMissingConformanceLevelWithDefaultErrorConfig() throws
250       SdcToscaParserException {
251     ISdcCsarHelper missingCSARMetaCsarDefaultConfig = getCsarHelper("csars/service-missing-csar-meta-file.csar");
252     missingCSARMetaCsarDefaultConfig.getConformanceLevel();
253   }
254    
255 }