2 * Copyright © 2016-2018 European Support Limited
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.openecomp.sdc.validation.impl.validators;
20 import org.junit.Assert;
21 import org.junit.Test;
22 import org.openecomp.core.validation.types.MessageContainer;
23 import org.openecomp.sdc.validation.Validator;
24 import org.openecomp.sdc.validation.util.ValidationTestUtil;
27 * Created by TALIO on 2/15/2017.
29 public class SharedResourceGuideLineValidatorTest {
31 private static final String RESOURCE_PATH = "/org/openecomp/validation/validators/guideLineValidator";
32 Validator validator = new SharedResourceGuideLineValidator();
35 public void testBaseHeatExposeNetwork() {
36 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
37 RESOURCE_PATH + "/baseHeatDoesNotExposeNetwork/positive/");
38 Assert.assertNotNull(messages);
39 Assert.assertEquals(messages.size(), 0);
41 messages = ValidationTestUtil.testValidator(validator,
42 RESOURCE_PATH + "/baseHeatDoesNotExposeNetwork/negative/");
43 Assert.assertNotNull(messages);
44 Assert.assertEquals(messages.size(), 1);
45 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
46 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
47 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [SecurityGroup_expose]");
51 public void testParseException(){
52 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
53 RESOURCE_PATH + "/baseHeatDoesNotExposeNetwork/parseException/");
54 Assert.assertEquals(messages.size(), 1);
55 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
56 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
57 "ERROR: [SRG5]: Invalid HEAT format problem - [while scanning for the next token\n" +
58 "found character '\\t(TAB)' that cannot start any token. (Do not use \\t(TAB) for indentation)\n" +
59 " in 'reader', line 5, column 1:\n" +
60 " \t\t\tresources:\n" +
66 public void testInvalidGetResource(){
67 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
69 "baseHeatDoesNotExposeNetworkInvalidGetResource");
70 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
71 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [net_expose]");
76 public void testBaseHeatExposeNetworkAndVolume() {
77 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
78 RESOURCE_PATH + "/baseHeatDoesNotExposeNetworkAndVolume/positive/");
79 Assert.assertNotNull(messages);
80 Assert.assertEquals(messages.size(), 0);
82 messages = ValidationTestUtil.testValidator(validator,
83 RESOURCE_PATH + "/baseHeatDoesNotExposeNetworkAndVolume/negative/");
84 Assert.assertNotNull(messages);
85 Assert.assertEquals(messages.size(), 1);
86 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
87 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
88 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [volume_expose]");
89 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
90 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [net_expose]");
94 public void testBaseHeatExposeServerGroup() {
95 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
96 RESOURCE_PATH + "/baseHeatDoesNotExposeServerGroup/positive/");
97 Assert.assertNotNull(messages);
98 Assert.assertEquals(messages.size(), 0);
100 messages = ValidationTestUtil.testValidator(validator,
101 RESOURCE_PATH + "/baseHeatDoesNotExposeServerGroup/negative/");
102 Assert.assertNotNull(messages);
103 Assert.assertEquals(messages.size(), 1);
104 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
105 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
106 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [ServerGroup_expose]");
110 public void testBaseHeatExposeSecurityGroup() {
111 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
112 RESOURCE_PATH + "/baseHeatDoesNotExposeSecurityGroup/positive/");
113 Assert.assertNotNull(messages);
114 Assert.assertEquals(messages.size(), 0);
116 messages = ValidationTestUtil.testValidator(validator,
117 RESOURCE_PATH + "/baseHeatDoesNotExposeSecurityGroup/negative/");
118 Assert.assertNotNull(messages);
119 Assert.assertEquals(messages.size(), 1);
120 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
121 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
122 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [SecurityGroup_expose]");
126 public void testBaseHeatExposeVolume() {
127 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
128 RESOURCE_PATH + "/baseHeatDoesNotExposeVolume/positive/");
129 Assert.assertNotNull(messages);
130 Assert.assertEquals(messages.size(), 0);
132 messages = ValidationTestUtil.testValidator(validator,
133 RESOURCE_PATH + "/baseHeatDoesNotExposeVolume/negative/");
134 Assert.assertNotNull(messages);
135 Assert.assertEquals(messages.size(), 1);
136 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
137 Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
138 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [volume_expose]");
142 public void testHeatVolumeExpose() {
143 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
144 RESOURCE_PATH + "/heatVolumeExpose/positive/");
145 Assert.assertNotNull(messages);
146 Assert.assertEquals(messages.size(), 0);
148 messages = ValidationTestUtil.testValidator(validator,
149 RESOURCE_PATH + "/heatVolumeExpose/negative/");
150 Assert.assertNotNull(messages);
151 Assert.assertEquals(messages.size(), 1);
152 Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().size(), 1);
153 Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().get(0).getMessage(),
154 "WARNING: [SRG2]: Volume is not defined as output and thus cannot be attached volume_expose");
159 public void testResourceIsExposedByCallingGetResourceNotFromOutput() {
160 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
161 RESOURCE_PATH + "/baseHeatExposeResourceUsingGetResource/positive");
162 Assert.assertNotNull(messages);
163 Assert.assertEquals(messages.size(), 0);
166 messages = ValidationTestUtil.testValidator(validator,
167 RESOURCE_PATH + "/baseHeatExposeResourceUsingGetResource/negative");
168 Assert.assertNotNull(messages);
169 Assert.assertEquals(messages.size(), 1);
170 Assert.assertEquals(messages.get("base_virc.yaml").getErrorMessageList().size(), 1);
171 Assert.assertEquals(messages.get("base_virc.yaml").getErrorMessageList().get(0).getMessage(),
172 "WARNING: [SRG1]: Resource is not defined as output and thus cannot be Shared, Resource ID [virc_RSG]");
176 public void testMissingBaseHeat() {
177 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
178 RESOURCE_PATH + "/missingBaseHeat/");
179 Assert.assertNotNull(messages);
180 Assert.assertEquals(messages.size(), 1);
181 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
182 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
183 "WARNING: [SRG3]: Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources");
187 public void testMultiBaseHeat() {
188 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
189 RESOURCE_PATH + "/multiBaseHeat/");
190 Assert.assertNotNull(messages);
191 Assert.assertEquals(messages.size(), 1);
192 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
193 Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
194 "WARNING: [SRG4]: Multi Base HEAT. Expected only one. Files [second.yaml,first.yaml].");