[sdc] docker file fix for cassandra
[sdc.git] / openecomp-be / lib / openecomp-sdc-validation-lib / openecomp-sdc-validation-impl / src / test / java / org / openecomp / sdc / validation / impl / validators / validators / EcompGuideLineValidatorTest.java
1 package org.openecomp.sdc.validation.impl.validators.validators;
2
3 import org.openecomp.sdc.validation.impl.validators.EcompGuideLineValidator;
4
5 import org.openecomp.sdc.validation.impl.validators.ValidatorBaseTest;
6 import org.openecomp.core.validation.types.MessageContainer;
7
8 import org.testng.Assert;
9 import org.testng.annotations.Test;
10
11 import java.util.Map;
12
13 public class EcompGuideLineValidatorTest extends ValidatorBaseTest {
14
15   @Test
16   public void testMissingBaseHeat() {
17     Map<String, MessageContainer> messages =
18         runValidation("/openecomp/org/validation/validators/ecompGuideLineValidator/missingBaseHeat/");
19     Assert.assertNotNull(messages);
20     Assert.assertEquals(messages.size(), 1);
21     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
22     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
23         "Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources");
24   }
25
26   @Test
27   public void testMultiBaseHeat() {
28     Map<String, MessageContainer> messages =
29         runValidation("/openecomp/org/validation/validators/ecompGuideLineValidator/multiBaseHeat/");
30     Assert.assertNotNull(messages);
31     Assert.assertEquals(messages.size(), 1);
32     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
33     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
34         "Multi Base HEAT. Expected only one. Files [second.yaml,first.yaml].");
35   }
36
37   @Test
38   public void testBaseHeatExposeVolume() {
39     Map<String, MessageContainer> messages = runValidation(
40         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeVolume/positive/");
41     Assert.assertNotNull(messages);
42     Assert.assertEquals(messages.size(), 0);
43
44     messages = runValidation(
45         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeVolume/negative/");
46     Assert.assertNotNull(messages);
47     Assert.assertEquals(messages.size(), 1);
48     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
49     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
50         "Resource is not defined as output and thus cannot be Shared. resource id - volume_expose");
51   }
52
53   @Test
54   public void testBaseHeatExposeServerGroup() {
55     Map<String, MessageContainer> messages = runValidation(
56         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeServerGroup/positive/");
57     Assert.assertNotNull(messages);
58     Assert.assertEquals(messages.size(), 0);
59
60     messages = runValidation(
61         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeServerGroup/negative/");
62     Assert.assertNotNull(messages);
63     Assert.assertEquals(messages.size(), 1);
64     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
65     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
66         "Resource is not defined as output and thus cannot be Shared. resource id - ServerGroup_expose");
67   }
68
69   @Test
70   public void testBaseHeatExposeSecurityGroup() {
71     Map<String, MessageContainer> messages = runValidation(
72         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeSecurityGroup/positive/");
73     Assert.assertNotNull(messages);
74     Assert.assertEquals(messages.size(), 0);
75
76     messages = runValidation(
77         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeSecurityGroup/negative/");
78     Assert.assertNotNull(messages);
79     Assert.assertEquals(messages.size(), 1);
80     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
81     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
82         "Resource is not defined as output and thus cannot be Shared. resource id - SecurityGroup_expose");
83   }
84
85
86   @Test
87   public void testBaseHeatExposeNetwork() {
88     Map<String, MessageContainer> messages = runValidation(
89         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeNetwork/positive/");
90     Assert.assertNotNull(messages);
91     Assert.assertEquals(messages.size(), 0);
92
93     messages = runValidation(
94         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeNetwork/negative/");
95     Assert.assertNotNull(messages);
96     Assert.assertEquals(messages.size(), 1);
97     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
98     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
99         "Resource is not defined as output and thus cannot be Shared. resource id - SecurityGroup_expose");
100   }
101
102   @Test
103   public void testBaseHeatExposeNetworkAndVolume() {
104     Map<String, MessageContainer> messages = runValidation(
105         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeNetworkAndVolume/positive/");
106     Assert.assertNotNull(messages);
107     Assert.assertEquals(messages.size(), 0);
108
109     messages = runValidation(
110         "/openecomp/org/validation/validators/ecompGuideLineValidator/baseHeatDoesNotExposeNetworkAndVolume/negative/");
111     Assert.assertNotNull(messages);
112     Assert.assertEquals(messages.size(), 1);
113     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
114     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
115         "Resource is not defined as output and thus cannot be Shared. resource id - volume_expose");
116     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
117         "Resource is not defined as output and thus cannot be Shared. resource id - net_expose");
118   }
119
120   @Test
121   public void testNovaResourceNetworkUniqueRole() {
122     Map<String, MessageContainer> messages = runValidation(
123         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaNetworkUniqueRoleConvention/positive/");
124     Assert.assertNotNull(messages);
125     Assert.assertEquals(messages.size(), 0);
126
127     messages = runValidation(
128         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaNetworkUniqueRoleConvention/negative/");
129     Assert.assertNotNull(messages);
130     Assert.assertEquals(messages.size(), 1);
131     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
132     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
133         "A resource is connected twice to the same network role Resource ID [FSB2] Network Role [Internal1].");
134   }
135
136   @Test
137   public void testHeatVolumeExpose() {
138     Map<String, MessageContainer> messages = runValidation(
139         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatVolumeExpose/positive/");
140     Assert.assertNotNull(messages);
141     Assert.assertEquals(messages.size(), 0);
142
143     messages = runValidation(
144         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatVolumeExpose/negative/");
145     Assert.assertNotNull(messages);
146     Assert.assertEquals(messages.size(), 1);
147     Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().size(), 1);
148     Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().get(0).getMessage(),
149         "Volume is not defined as output and thus cannot be attached volume_expose");
150
151   }
152
153   @Test
154   public void testHeatPortNetworkNamingConvention() {
155     Map<String, MessageContainer> messages = runValidation(
156         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatPortNetworkNamingConvention/positive/");
157     Assert.assertNotNull(messages);
158     Assert.assertEquals(messages.size(), 0);
159
160     messages = runValidation(
161         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatPortNetworkNamingConvention/negative/");
162     Assert.assertNotNull(messages);
163     Assert.assertEquals(messages.size(), 1);
164     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 3);
165     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
166         "Network Parameter Name not aligned with Guidelines Parameter Name [not_valid_network_name] Resource ID [port_resource]");
167   }
168
169   @Test
170   public void testHeatNovaServerMetaDataValidation() {
171     Map<String, MessageContainer> messages = runValidation(
172         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerMetaDataValidation/positive/");
173     Assert.assertNotNull(messages);
174     Assert.assertEquals(messages.size(), 0);
175
176     messages = runValidation(
177         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerMetaDataValidation/negative/");
178     Assert.assertNotNull(messages);
179     Assert.assertEquals(messages.size(), 1);
180     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
181     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
182         "Missing VNF_ID Resource id [FSB2]");
183   }
184
185   @Test
186   public void testNeutronFixedIpName() {
187     Map<String, MessageContainer> messages = runValidation(
188         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatPortFixedIpNamingConvention/positive");
189     Assert.assertNotNull(messages);
190     Assert.assertEquals(messages.size(), 0);
191
192     messages = runValidation(
193         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatPortFixedIpNamingConvention/negative/");
194     Assert.assertNotNull(messages);
195     Assert.assertEquals(messages.size(), 1);
196     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 3);
197     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
198         "Fixed_IPS not aligned with Guidelines, Resource ID [port_resource_0]");
199     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
200         "Fixed_IPS not aligned with Guidelines, Resource ID [port_resource_1]");
201     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(2).getMessage(),
202         "Fixed_IPS not aligned with Guidelines, Resource ID [port_resource_2]");
203   }
204
205
206   @Test
207   public void testNovaServerName() {
208     Map<String, MessageContainer> messages = runValidation(
209         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerNameValidation/positive");
210     Assert.assertNotNull(messages);
211     Assert.assertEquals(messages.size(), 0);
212
213     messages = runValidation(
214         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerNameValidation/negative/");
215     Assert.assertNotNull(messages);
216     Assert.assertEquals(messages.size(), 1);
217     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
218     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
219         "Server Name not aligned with Guidelines, Resource ID [FSB2]");
220   }
221
222   @Test
223   public void testAvailabilityZoneName() {
224     Map<String, MessageContainer> messages = runValidation(
225         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerAvailabilityZoneName/positive");
226     Assert.assertNotNull(messages);
227     Assert.assertEquals(messages.size(), 0);
228
229     messages = runValidation(
230         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerAvailabilityZoneName/negative");
231     Assert.assertNotNull(messages);
232     Assert.assertEquals(messages.size(), 1);
233     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 3);
234     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
235         "Server Availability Zone not aligned with Guidelines, Resource ID [FSB2]");
236     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
237         "Server Availability Zone not aligned with Guidelines, Resource ID [FSB3]");
238   }
239
240   @Test
241   public void testFloatingIpResourceType() {
242     Map<String, MessageContainer> messages = runValidation(
243         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatFloatingIpResourceType/positive");
244     Assert.assertNotNull(messages);
245     Assert.assertEquals(messages.size(), 0);
246
247
248     messages = runValidation(
249         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatFloatingIpResourceType/negative");
250     Assert.assertNotNull(messages);
251     Assert.assertEquals(messages.size(), 1);
252     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
253     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
254         "OS::Neutron::FloatingIP is in use, Resource ID [FSB2]");
255   }
256
257   @Test
258   public void testImageAndFlavorNames() {
259     Map<String, MessageContainer> messages = runValidation(
260         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerImageAndFlavor/positive");
261     Assert.assertNotNull(messages);
262     Assert.assertEquals(messages.size(), 0);
263
264     messages = runValidation(
265         "/openecomp/org/validation/validators/ecompGuideLineValidator/heatNovaServerImageAndFlavor/negative");
266     Assert.assertNotNull(messages);
267     Assert.assertEquals(messages.size(), 1);
268     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
269     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
270         "Wrong flavor name format in NOVA Server, Resource ID [FSB2]");
271     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
272         "Wrong image name format in NOVA Server, Resource ID [FSB3]");
273   }
274
275
276   @Override
277   public Map<String, MessageContainer> runValidation(String path) {
278     EcompGuideLineValidator validator = new EcompGuideLineValidator();
279     return testValidator(validator, path);
280   }
281 }