1 package org.openecomp.sdc.validation.impl.validators;
3 import org.openecomp.core.validation.types.MessageContainer;
4 import org.openecomp.sdc.validation.Validator;
5 import org.openecomp.sdc.validation.util.ValidationTestUtil;
6 import org.testng.Assert;
7 import org.testng.annotations.Test;
12 * Created by TALIO on 2/15/2017.
14 public class SharedResourceGuideLineValidatorTest {
16 private static final String RESOURCE_PATH = "/org/openecomp/validation/validators/guideLineValidator";
17 Validator validator = new SharedResourceGuideLineValidator();
20 public void testBaseHeatExposeNetwork() {
21 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
22 RESOURCE_PATH + "/baseHeatDoesNotExposeNetwork/positive/");
23 Assert.assertNotNull(messages);
24 Assert.assertEquals(messages.size(), 0);
26 messages = ValidationTestUtil.testValidator(validator,
27 RESOURCE_PATH + "/baseHeatDoesNotExposeNetwork/negative/");
28 Assert.assertNotNull(messages);
29 Assert.assertEquals(messages.size(), 1);
30 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
31 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
32 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [SecurityGroup_expose]");
36 public void testParseException(){
37 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
38 RESOURCE_PATH + "/baseHeatDoesNotExposeNetwork/parseException/");
39 Assert.assertEquals(messages.size(), 1);
40 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
41 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
42 "ERROR: [SRG5]: Invalid HEAT format problem - [while scanning for the next token\n" +
43 "found character '\\t(TAB)' that cannot start any token. (Do not use \\t(TAB) for indentation)\n" +
44 " in 'reader', line 5, column 1:\n" +
45 " \t\t\tresources:\n" +
51 public void testInvalidGetResource(){
52 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
54 "baseHeatDoesNotExposeNetworkInvalidGetResource");
55 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
56 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [net_expose]");
61 public void testBaseHeatExposeNetworkAndVolume() {
62 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
63 RESOURCE_PATH + "/baseHeatDoesNotExposeNetworkAndVolume/positive/");
64 Assert.assertNotNull(messages);
65 Assert.assertEquals(messages.size(), 0);
67 messages = ValidationTestUtil.testValidator(validator,
68 RESOURCE_PATH + "/baseHeatDoesNotExposeNetworkAndVolume/negative/");
69 Assert.assertNotNull(messages);
70 Assert.assertEquals(messages.size(), 1);
71 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
72 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
73 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [volume_expose]");
74 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
75 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [net_expose]");
79 public void testBaseHeatExposeServerGroup() {
80 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
81 RESOURCE_PATH + "/baseHeatDoesNotExposeServerGroup/positive/");
82 Assert.assertNotNull(messages);
83 Assert.assertEquals(messages.size(), 0);
85 messages = ValidationTestUtil.testValidator(validator,
86 RESOURCE_PATH + "/baseHeatDoesNotExposeServerGroup/negative/");
87 Assert.assertNotNull(messages);
88 Assert.assertEquals(messages.size(), 1);
89 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
90 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
91 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [ServerGroup_expose]");
95 public void testBaseHeatExposeSecurityGroup() {
96 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
97 RESOURCE_PATH + "/baseHeatDoesNotExposeSecurityGroup/positive/");
98 Assert.assertNotNull(messages);
99 Assert.assertEquals(messages.size(), 0);
101 messages = ValidationTestUtil.testValidator(validator,
102 RESOURCE_PATH + "/baseHeatDoesNotExposeSecurityGroup/negative/");
103 Assert.assertNotNull(messages);
104 Assert.assertEquals(messages.size(), 1);
105 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
106 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
107 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [SecurityGroup_expose]");
111 public void testBaseHeatExposeVolume() {
112 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
113 RESOURCE_PATH + "/baseHeatDoesNotExposeVolume/positive/");
114 Assert.assertNotNull(messages);
115 Assert.assertEquals(messages.size(), 0);
117 messages = ValidationTestUtil.testValidator(validator,
118 RESOURCE_PATH + "/baseHeatDoesNotExposeVolume/negative/");
119 Assert.assertNotNull(messages);
120 Assert.assertEquals(messages.size(), 1);
121 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
122 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
123 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [volume_expose]");
127 public void testHeatVolumeExpose() {
128 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
129 RESOURCE_PATH + "/heatVolumeExpose/positive/");
130 Assert.assertNotNull(messages);
131 Assert.assertEquals(messages.size(), 0);
133 messages = ValidationTestUtil.testValidator(validator,
134 RESOURCE_PATH + "/heatVolumeExpose/negative/");
135 Assert.assertNotNull(messages);
136 Assert.assertEquals(messages.size(), 1);
137 Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().size(), 1);
138 Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().get(0).getMessage(),
139 "WARNING: [SRG2]: Volume is not defined as output and thus cannot be attached volume_expose");
144 public void testResourceIsExposedByCallingGetResourceNotFromOutput() {
145 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
146 RESOURCE_PATH + "/baseHeatExposeResourceUsingGetResource/positive");
147 Assert.assertNotNull(messages);
148 Assert.assertEquals(messages.size(), 0);
151 messages = ValidationTestUtil.testValidator(validator,
152 RESOURCE_PATH + "/baseHeatExposeResourceUsingGetResource/negative");
153 Assert.assertNotNull(messages);
154 Assert.assertEquals(messages.size(), 1);
155 Assert.assertEquals(messages.get("base_virc.yaml").getErrorMessageList().size(), 1);
156 Assert.assertEquals(messages.get("base_virc.yaml").getErrorMessageList().get(0).getMessage(),
157 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [virc_RSG]");
161 public void testMissingBaseHeat() {
162 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
163 RESOURCE_PATH + "/missingBaseHeat/");
164 Assert.assertNotNull(messages);
165 Assert.assertEquals(messages.size(), 1);
166 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
167 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
168 "WARNING: [SRG3]: Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources");
172 public void testMultiBaseHeat() {
173 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
174 RESOURCE_PATH + "/multiBaseHeat/");
175 Assert.assertNotNull(messages);
176 Assert.assertEquals(messages.size(), 1);
177 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
178 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
179 "WARNING: [SRG4]: Multi Base HEAT. Expected only one. Files [second.yaml,first.yaml].");