1 package org.openecomp.sdc.validation.impl.validators.validators;
3 import org.openecomp.sdc.validation.impl.validators.EcompGuideLineValidator;
5 import org.openecomp.sdc.validation.impl.validators.ValidatorBaseTest;
6 import org.openecomp.core.validation.types.MessageContainer;
8 import org.testng.Assert;
9 import org.testng.annotations.Test;
13 public class EcompGuideLineValidatorTest extends ValidatorBaseTest {
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");
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].");
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);
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");
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);
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");
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);
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");
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);
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");
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);
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");
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);
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].");
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);
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");
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);
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]");
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);
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]");
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);
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]");
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);
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]");
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);
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]");
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);
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]");
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);
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]");
277 public Map<String, MessageContainer> runValidation(String path) {
278 EcompGuideLineValidator validator = new EcompGuideLineValidator();
279 return testValidator(validator, path);