[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-be / lib / openecomp-sdc-validation-lib / openecomp-sdc-validation-impl / src / test / java / org / openecomp / sdc / validation / impl / validators / SharedResourceGuideLineValidatorTest.java
1 package org.openecomp.sdc.validation.impl.validators;
2
3 import org.openecomp.sdc.validation.Validator;
4 import org.openecomp.core.validation.types.MessageContainer;
5 import org.openecomp.sdc.validation.util.ValidationTestUtil;
6 import org.testng.Assert;
7 import org.testng.annotations.Test;
8
9 import java.util.Map;
10
11 /**
12  * Created by TALIO on 2/15/2017.
13  */
14 public class SharedResourceGuideLineValidatorTest {
15
16   Validator validator = new SharedResourceGuideLineValidator();
17
18   @Test
19   public void testBaseHeatExposeNetwork() {
20     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
21         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeNetwork/positive/");
22     Assert.assertNotNull(messages);
23     Assert.assertEquals(messages.size(), 0);
24
25     messages = ValidationTestUtil.testValidator(validator,
26         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeNetwork/negative/");
27     Assert.assertNotNull(messages);
28     Assert.assertEquals(messages.size(), 1);
29     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
30     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
31         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [SecurityGroup_expose]");
32   }
33
34   @Test
35   public void testBaseHeatExposeNetworkAndVolume() {
36     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
37         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeNetworkAndVolume/positive/");
38     Assert.assertNotNull(messages);
39     Assert.assertEquals(messages.size(), 0);
40
41     messages = ValidationTestUtil.testValidator(validator,
42         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeNetworkAndVolume/negative/");
43     Assert.assertNotNull(messages);
44     Assert.assertEquals(messages.size(), 1);
45     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
46     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
47         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [volume_expose]");
48     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
49         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [net_expose]");
50   }
51
52   @Test
53   public void testBaseHeatExposeServerGroup() {
54     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
55         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeServerGroup/positive/");
56     Assert.assertNotNull(messages);
57     Assert.assertEquals(messages.size(), 0);
58
59     messages = ValidationTestUtil.testValidator(validator,
60         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeServerGroup/negative/");
61     Assert.assertNotNull(messages);
62     Assert.assertEquals(messages.size(), 1);
63     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
64     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
65         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [ServerGroup_expose]");
66   }
67
68   @Test
69   public void testBaseHeatExposeSecurityGroup() {
70     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
71         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeSecurityGroup/positive/");
72     Assert.assertNotNull(messages);
73     Assert.assertEquals(messages.size(), 0);
74
75     messages = ValidationTestUtil.testValidator(validator,
76         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeSecurityGroup/negative/");
77     Assert.assertNotNull(messages);
78     Assert.assertEquals(messages.size(), 1);
79     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
80     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
81         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [SecurityGroup_expose]");
82   }
83
84   @Test
85   public void testBaseHeatExposeVolume() {
86     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
87         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeVolume/positive/");
88     Assert.assertNotNull(messages);
89     Assert.assertEquals(messages.size(), 0);
90
91     messages = ValidationTestUtil.testValidator(validator,
92         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatDoesNotExposeVolume/negative/");
93     Assert.assertNotNull(messages);
94     Assert.assertEquals(messages.size(), 1);
95     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
96     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
97         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [volume_expose]");
98   }
99
100   @Test
101   public void testHeatVolumeExpose() {
102     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
103         "/org/openecomp/validation/validators/attGuideLineValidator/heatVolumeExpose/positive/");
104     Assert.assertNotNull(messages);
105     Assert.assertEquals(messages.size(), 0);
106
107     messages = ValidationTestUtil.testValidator(validator,
108         "/org/openecomp/validation/validators/attGuideLineValidator/heatVolumeExpose/negative/");
109     Assert.assertNotNull(messages);
110     Assert.assertEquals(messages.size(), 1);
111     Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().size(), 1);
112     Assert.assertEquals(messages.get("firstVol.yaml").getErrorMessageList().get(0).getMessage(),
113         "WARNING: Volume is not defined as output and thus cannot be attached volume_expose");
114
115   }
116
117   @Test
118   public void testResourceIsExposedByCallingGetResourceNotFromOutput() {
119     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
120         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/positive");
121     Assert.assertNotNull(messages);
122     Assert.assertEquals(messages.size(), 0);
123
124
125     messages = ValidationTestUtil.testValidator(validator,
126         "/org/openecomp/validation/validators/attGuideLineValidator/baseHeatExposeResourceUsingGetResource/negative");
127     Assert.assertNotNull(messages);
128     Assert.assertEquals(messages.size(), 1);
129     Assert.assertEquals(messages.get("base_virc.yaml").getErrorMessageList().size(), 1);
130     Assert.assertEquals(messages.get("base_virc.yaml").getErrorMessageList().get(0).getMessage(),
131         "WARNING: Resource is not defined as output and thus cannot be Shared, Resource ID [virc_RSG]");
132   }
133
134   @Test
135   public void testMissingBaseHeat() {
136     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
137         "/org/openecomp/validation/validators/attGuideLineValidator/missingBaseHeat/");
138     Assert.assertNotNull(messages);
139     Assert.assertEquals(messages.size(), 1);
140     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
141     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
142         "WARNING: Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources");
143   }
144
145   @Test
146   public void testMultiBaseHeat() {
147     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
148         "/org/openecomp/validation/validators/attGuideLineValidator/multiBaseHeat/");
149     Assert.assertNotNull(messages);
150     Assert.assertEquals(messages.size(), 1);
151     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().size(), 1);
152     Assert.assertEquals(messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
153         "WARNING: Multi Base HEAT. Expected only one. Files [second.yaml,first.yaml].");
154   }
155 }