2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 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
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.sdc.tosca.services;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertNull;
28 import java.io.FileInputStream;
32 import org.junit.Assert;
33 import org.junit.Test;
34 import org.onap.sdc.tosca.datatypes.model.Import;
35 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
38 public class DataModelConvertUtilTest {
41 public void testConvertToscaImport() throws Exception {
42 ServiceTemplate serviceTemplate;
43 String inputResourceName = "/mock/serviceTemplate/importConvertTest.yml";
44 URL resource = this.getClass().getResource(inputResourceName);
45 File inputPayload = new File(resource.getFile());
46 ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
47 try (FileInputStream fis = new FileInputStream(inputPayload)) {
48 serviceTemplate = toscaExtensionYamlUtil.yamlToObject(fis, ServiceTemplate.class);
50 assertNotNull(((Map)serviceTemplate.getImports().get(0)).get("data"));
51 assertNotNull(((Map)serviceTemplate.getImports().get(1)).get("artifacts"));
52 assertNotNull(((Map)serviceTemplate.getImports().get(2)).get("capabilities"));
53 assertNotNull(((Map)serviceTemplate.getImports().get(3)).get("api_interfaces"));
54 assertNotNull(((Map)serviceTemplate.getImports().get(4)).get("api_util_relationships"));
55 assertNotNull(((Map)serviceTemplate.getImports().get(5)).get("common"));
56 assertNotNull(((Map)serviceTemplate.getImports().get(6)).get("api_util"));
57 assertNotNull(((Map)serviceTemplate.getImports().get(7)).get("relationshipsExt"));
58 assertNotNull(((Map)serviceTemplate.getImports().get(8)).get("some_definition_file"));
59 assertNotNull(((Map)serviceTemplate.getImports().get(9)).get("site_index"));
63 public void testConvertToscaImportForEmptyImport() throws Exception {
64 ServiceTemplate serviceTemplate;
65 String inputResourceName = "/mock/serviceTemplate/importConvertTestNoImport.yml";
66 URL resource = this.getClass().getResource(inputResourceName);
67 File inputPayload = new File(resource.getFile());
68 ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
69 try (FileInputStream fis = new FileInputStream(inputPayload)) {
70 serviceTemplate = toscaExtensionYamlUtil.yamlToObject(fis, ServiceTemplate.class);
73 Assert.assertNull(serviceTemplate.getImports());
77 public void testInvalidToscaImportSection() {
78 String inputResourceName = "/mock/serviceTemplate/invalidToscaImport.yml";
79 URL resource = this.getClass().getResource(inputResourceName);
80 File inputPayload = new File(resource.getFile());
81 ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
82 try (FileInputStream fis = new FileInputStream(inputPayload)) {
83 toscaExtensionYamlUtil.yamlToObject(fis, ServiceTemplate.class);
85 } catch (Exception ex) {
86 Assert.assertTrue(ex.getMessage().contains("Cannot create property=imports"));
91 public void testEmptyImportList() throws Exception {
92 String inputResourceName = "/mock/serviceTemplate/emptyImportList.yml";
93 URL resource = this.getClass().getResource(inputResourceName);
94 File inputPayload = new File(resource.getFile());
95 ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
96 try (FileInputStream fis = new FileInputStream(inputPayload)) {
97 ServiceTemplate serviceTemplate = toscaExtensionYamlUtil.yamlToObject(fis, ServiceTemplate.class);
98 assertNull(serviceTemplate.getImports());
103 public void testConvertToscaImportMultiLineGrammar() throws Exception {
104 ServiceTemplate serviceTemplate;
105 String inputResourceName = "/mock/serviceTemplate/importMultiLineGrammar.yml";
106 URL resource = this.getClass().getResource(inputResourceName);
107 File inputPayload = new File(resource.getFile());
108 ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
109 try (FileInputStream fis = new FileInputStream(inputPayload)) {
110 serviceTemplate = toscaExtensionYamlUtil.yamlToObject(fis, ServiceTemplate.class);
112 Map<String, Import> parsedMultiLineImport = (Map<String, Import>) serviceTemplate.getImports().get(0);
113 assertNotNull(parsedMultiLineImport);
114 Import multiLineGrammarImport = parsedMultiLineImport.get("multi_line_grammar_import");
115 assertNotNull(multiLineGrammarImport);
116 assertEquals(multiLineGrammarImport.getFile(), "path1/path2/importFile.yaml");
117 assertEquals(multiLineGrammarImport.getRepository(), "service_repo");
118 assertEquals(multiLineGrammarImport.getNamespace_uri(), "http://test.xyz/tosca/1.0/platform");
119 assertEquals(multiLineGrammarImport.getNamespace_prefix(), "ns_prefix");
124 public void testConvertToscaImportInvalidMultiLineGrammar() {
125 String inputResourceName = "/mock/serviceTemplate/invalidImportMultiLineGrammar.yml";
126 URL resource = this.getClass().getResource(inputResourceName);
127 File inputPayload = new File(resource.getFile());
128 ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
129 try (FileInputStream fis = new FileInputStream(inputPayload)) {
130 toscaExtensionYamlUtil.yamlToObject(fis, ServiceTemplate.class);
132 } catch (Exception ex) {
133 Assert.assertTrue(ex.getMessage().contains("Cannot create property=imports"));