[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-be / backend / openecomp-sdc-vendor-software-product-manager / src / test / java / org / openecomp / sdc / vendorsoftwareproduct / tree / HeatTreeManagerTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 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.openecomp.sdc.vendorsoftwareproduct.tree;
22
23 import org.openecomp.sdc.datatypes.error.ErrorLevel;
24 import org.openecomp.sdc.datatypes.error.ErrorMessage;
25 import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
26 import org.openecomp.sdc.heat.services.tree.HeatTreeManager;
27 import org.testng.Assert;
28 import org.testng.annotations.Test;
29
30 import java.io.IOException;
31 import java.util.ArrayList;
32 import java.util.HashMap;
33 import java.util.List;
34 import java.util.Map;
35 import java.util.Set;
36
37
38 public class HeatTreeManagerTest extends TreeBaseTest {
39
40   @Test
41   public void testHeatTreeManager() {
42
43     INPUT_DIR = "./tree/valid_tree/input/";
44     HeatTreeManager heatTreeManager = initHeatTreeManager();
45     heatTreeManager.createTree();
46     Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
47
48     List<ErrorMessage> errorList = new ArrayList<>();
49     errorList.add(new ErrorMessage(ErrorLevel.ERROR, "Missing Artifact"));
50     errorMap.put("missing-artifact", errorList);
51     errorList = new ArrayList<>();
52     errorList.add(new ErrorMessage(ErrorLevel.WARNING, "Missing Nested File"));
53     errorMap.put("missingNested.yaml", errorList);
54     heatTreeManager.addErrors(errorMap);
55     HeatStructureTree tree = heatTreeManager.getTree();
56     Assert.assertNotNull(tree);
57   }
58
59   @Test
60   public void testHeatTreeManagerMissingManifest() {
61
62     INPUT_DIR = "./tree/missing_manifest/input/";
63     HeatTreeManager heatTreeManager = initHeatTreeManager();
64     heatTreeManager.createTree();
65     Map<String, List<ErrorMessage>> errorMap = new HashMap<>();
66
67     List<ErrorMessage> errorList = new ArrayList<>();
68     errorList.add(new ErrorMessage(ErrorLevel.ERROR, "Missing Artifact"));
69     errorMap.put("missing-artifact", errorList);
70     errorList = new ArrayList<>();
71     errorList.add(new ErrorMessage(ErrorLevel.WARNING, "Missing Nested File"));
72     errorMap.put("missingNested.yaml", errorList);
73     heatTreeManager.addErrors(errorMap);
74     HeatStructureTree tree = heatTreeManager.getTree();
75     Assert.assertNotNull(tree);
76     Assert.assertEquals(tree.getHeat(), null);
77
78   }
79
80
81   @Test
82   public void testResourceGroupShowsAsNestedFileInTree() throws IOException {
83     INPUT_DIR = "./tree/nested_resource_group";
84     HeatTreeManager heatTreeManager = initHeatTreeManager();
85     heatTreeManager.createTree();
86     HeatStructureTree tree = heatTreeManager.getTree();
87
88     Set<HeatStructureTree> heat = tree.getHeat();
89     Assert.assertNotNull(heat);
90
91     HeatStructureTree addOnHeatSubTree =
92         HeatStructureTree.getHeatStructureTreeByName(heat, "addOn.yml");
93     Assert.assertNotNull(addOnHeatSubTree);
94
95     Set<HeatStructureTree> addOnNestedFiles = addOnHeatSubTree.getNested();
96     Assert.assertNotNull(addOnNestedFiles);
97
98     HeatStructureTree nestedFile =
99         HeatStructureTree.getHeatStructureTreeByName(addOnNestedFiles, "nested.yml");
100     Assert.assertNotNull(nestedFile);
101   }
102
103
104   @Test
105   public void testVolumeNestedFileIsNotUnderVolumeSubTree() {
106     INPUT_DIR = "./tree/nested_volume";
107     HeatTreeManager heatTreeManager = initHeatTreeManager();
108     heatTreeManager.createTree();
109     HeatStructureTree tree = heatTreeManager.getTree();
110
111     Set<HeatStructureTree> heat = tree.getHeat();
112     Set<HeatStructureTree> volume = tree.getVolume();
113     Assert.assertNotNull(heat);
114     Assert.assertNull(volume);
115
116     HeatStructureTree baseMobtSubTree =
117         HeatStructureTree.getHeatStructureTreeByName(heat, "base_mobt.yaml");
118     Assert.assertNotNull(baseMobtSubTree);
119
120     Set<HeatStructureTree> baseMobtNestedFiles = baseMobtSubTree.getNested();
121     Assert.assertNotNull(baseMobtNestedFiles);
122
123     HeatStructureTree nestedVolumeFile = HeatStructureTree
124         .getHeatStructureTreeByName(baseMobtNestedFiles, "hot_mobt_volume_attach_nested.yaml");
125     Assert.assertNotNull(nestedVolumeFile);
126   }
127 }