2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.vendorsoftwareproduct.tree;
19 import org.junit.Assert;
20 import org.junit.Test;
21 import org.openecomp.sdc.datatypes.error.ErrorLevel;
22 import org.openecomp.sdc.datatypes.error.ErrorMessage;
23 import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
24 import org.openecomp.sdc.heat.services.tree.HeatTreeManager;
26 import java.io.IOException;
27 import java.net.URISyntaxException;
28 import java.util.ArrayList;
29 import java.util.HashMap;
30 import java.util.List;
34 public class HeatTreeManagerTest extends TreeBaseTest {
37 public void testHeatTreeManager() throws IOException, URISyntaxException {
39 HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/valid_tree/input/");
40 heatTreeManager.createTree();
41 Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
43 List<ErrorMessage> errorList = new ArrayList<>();
44 errorList.add(new ErrorMessage(ErrorLevel.ERROR, "Missing Artifact"));
45 errorMap.put("missing-artifact", errorList);
46 errorList = new ArrayList<>();
47 errorList.add(new ErrorMessage(ErrorLevel.WARNING, "Missing Nested File"));
48 errorMap.put("missingNested.yaml", errorList);
49 heatTreeManager.addErrors(errorMap);
50 HeatStructureTree tree = heatTreeManager.getTree();
51 Assert.assertNotNull(tree);
55 public void testHeatTreeManagerMissingManifest() throws IOException, URISyntaxException {
57 HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/missing_manifest/input/");
58 heatTreeManager.createTree();
59 Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
61 List<ErrorMessage> errorList = new ArrayList<>();
62 errorList.add(new ErrorMessage(ErrorLevel.ERROR, "Missing Artifact"));
63 errorMap.put("missing-artifact", errorList);
64 errorList = new ArrayList<>();
65 errorList.add(new ErrorMessage(ErrorLevel.WARNING, "Missing Nested File"));
66 errorMap.put("missingNested.yaml", errorList);
67 heatTreeManager.addErrors(errorMap);
68 HeatStructureTree tree = heatTreeManager.getTree();
69 Assert.assertNotNull(tree);
70 Assert.assertNull(tree.getHeat());
76 public void testResourceGroupShowsAsNestedFileInTree() throws IOException, URISyntaxException {
78 HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/nested_resource_group");
79 heatTreeManager.createTree();
80 HeatStructureTree tree = heatTreeManager.getTree();
82 Set<HeatStructureTree> heat = tree.getHeat();
83 Assert.assertNotNull(heat);
85 HeatStructureTree addOnHeatSubTree =
86 HeatStructureTree.getHeatStructureTreeByName(heat, "addOn.yml");
87 Assert.assertNotNull(addOnHeatSubTree);
89 Set<HeatStructureTree> addOnNestedFiles = addOnHeatSubTree.getNested();
90 Assert.assertNotNull(addOnNestedFiles);
92 HeatStructureTree nestedFile =
93 HeatStructureTree.getHeatStructureTreeByName(addOnNestedFiles, "nested.yml");
94 Assert.assertNotNull(nestedFile);
99 public void testVolumeNestedFileIsNotUnderVolumeSubTree() throws IOException, URISyntaxException {
101 HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/nested_volume");
102 heatTreeManager.createTree();
103 HeatStructureTree tree = heatTreeManager.getTree();
105 Set<HeatStructureTree> heat = tree.getHeat();
106 Set<HeatStructureTree> volume = tree.getVolume();
107 Assert.assertNotNull(heat);
108 Assert.assertNull(volume);
110 HeatStructureTree baseMobtSubTree =
111 HeatStructureTree.getHeatStructureTreeByName(heat, "base_mobt.yaml");
112 Assert.assertNotNull(baseMobtSubTree);
114 Set<HeatStructureTree> baseMobtNestedFiles = baseMobtSubTree.getNested();
115 Assert.assertNotNull(baseMobtNestedFiles);
117 HeatStructureTree nestedVolumeFile = HeatStructureTree
118 .getHeatStructureTreeByName(baseMobtNestedFiles, "hot_mobt_volume_attach_nested.yaml");
119 Assert.assertNotNull(nestedVolumeFile);