Get manifest location from Meta file
[sdc.git] / openecomp-be / backend / openecomp-sdc-vendor-software-product-manager / src / test / java / org / openecomp / sdc / vendorsoftwareproduct / tree / HeatTreeManagerTest.java
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.openecomp.sdc.vendorsoftwareproduct.tree;
18
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;
25
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;
31 import java.util.Map;
32 import java.util.Set;
33
34 public class HeatTreeManagerTest extends TreeBaseTest {
35
36   @Test
37   public void testHeatTreeManager() throws IOException, URISyntaxException {
38
39     HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/valid_tree/input/");
40     heatTreeManager.createTree();
41     Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
42
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);
52   }
53
54   @Test
55   public void testHeatTreeManagerMissingManifest() throws IOException, URISyntaxException {
56
57     HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/missing_manifest/input/");
58     heatTreeManager.createTree();
59     Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
60
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());
71
72   }
73
74
75   @Test
76   public void testResourceGroupShowsAsNestedFileInTree() throws IOException, URISyntaxException {
77
78     HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/nested_resource_group");
79     heatTreeManager.createTree();
80     HeatStructureTree tree = heatTreeManager.getTree();
81
82     Set<HeatStructureTree> heat = tree.getHeat();
83     Assert.assertNotNull(heat);
84
85     HeatStructureTree addOnHeatSubTree =
86         HeatStructureTree.getHeatStructureTreeByName(heat, "addOn.yml");
87     Assert.assertNotNull(addOnHeatSubTree);
88
89     Set<HeatStructureTree> addOnNestedFiles = addOnHeatSubTree.getNested();
90     Assert.assertNotNull(addOnNestedFiles);
91
92     HeatStructureTree nestedFile =
93         HeatStructureTree.getHeatStructureTreeByName(addOnNestedFiles, "nested.yml");
94     Assert.assertNotNull(nestedFile);
95   }
96
97
98   @Test
99   public void testVolumeNestedFileIsNotUnderVolumeSubTree() throws IOException, URISyntaxException {
100
101     HeatTreeManager heatTreeManager = initHeatTreeManager("./tree/nested_volume");
102     heatTreeManager.createTree();
103     HeatStructureTree tree = heatTreeManager.getTree();
104
105     Set<HeatStructureTree> heat = tree.getHeat();
106     Set<HeatStructureTree> volume = tree.getVolume();
107     Assert.assertNotNull(heat);
108     Assert.assertNull(volume);
109
110     HeatStructureTree baseMobtSubTree =
111         HeatStructureTree.getHeatStructureTreeByName(heat, "base_mobt.yaml");
112     Assert.assertNotNull(baseMobtSubTree);
113
114     Set<HeatStructureTree> baseMobtNestedFiles = baseMobtSubTree.getNested();
115     Assert.assertNotNull(baseMobtNestedFiles);
116
117     HeatStructureTree nestedVolumeFile = HeatStructureTree
118         .getHeatStructureTreeByName(baseMobtNestedFiles, "hot_mobt_volume_attach_nested.yaml");
119     Assert.assertNotNull(nestedVolumeFile);
120   }
121 }