[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 / namingconvention / NovaServerNamingConventionGuideLineValidatorTest.java
1 package org.openecomp.sdc.validation.impl.validators.namingconvention;
2
3 import org.openecomp.core.validation.types.MessageContainer;
4 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
5 import org.openecomp.sdc.validation.impl.validators.NamingConventionGuideLineValidator;
6 import org.openecomp.sdc.validation.util.ValidationTestUtil;
7 import org.testng.Assert;
8 import org.testng.annotations.Test;
9
10 import java.io.IOException;
11 import java.util.Map;
12
13 /**
14  * Created by TALIO on 2/28/2017.
15  */
16 public class NovaServerNamingConventionGuideLineValidatorTest {
17
18   NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
19   NovaServerNamingConventionGuideLineValidator resourceValidator = new
20       NovaServerNamingConventionGuideLineValidator();
21
22   @Test
23   public void testHeatNovaServerMetaDataValidation() {
24     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
25         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
26         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerMetaDataValidation/positive/");
27     Assert.assertNotNull(messages);
28     Assert.assertEquals(messages.size(), 0);
29
30     messages = ValidationTestUtil.testValidator(baseValidator,
31         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
32         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerMetaDataValidation/negative/");
33     Assert.assertNotNull(messages);
34     Assert.assertEquals(messages.size(), 1);
35     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
36     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
37         "WARNING: Missing VNF_ID in Metadata property, Resource ID [FSB2]");
38   }
39
40   @Test
41   public void testNovaServerAvailabilityZoneName() {
42     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
43         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
44         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerAvailabilityZoneName/positive");
45     Assert.assertNotNull(messages);
46     Assert.assertEquals(messages.size(), 0);
47
48     messages = ValidationTestUtil.testValidator(baseValidator,
49         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
50         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerAvailabilityZoneName/negative");
51     Assert.assertNotNull(messages);
52     Assert.assertEquals(messages.size(), 1);
53     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 3);
54     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
55         "WARNING: Server 'Availability Zone' Parameter Name not aligned with Guidelines, Parameter Name [availability_zone_a], Resource ID [FSB2]. As a result, VF/VFC Profile may miss this information");
56     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
57         "WARNING: Server 'Availability Zone' Parameter Name not aligned with Guidelines, Parameter Name [availability_zone], Resource ID [FSB3]. As a result, VF/VFC Profile may miss this information");
58   }
59
60   @Test
61   public void testNovaImageAndFlavorNames() {
62     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
63         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
64         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerImageAndFlavor/positive");
65     Assert.assertNotNull(messages);
66     Assert.assertEquals(messages.size(), 0);
67
68     messages = ValidationTestUtil.testValidator(baseValidator,
69         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
70         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerImageAndFlavor/negative");
71     Assert.assertNotNull(messages);
72     Assert.assertEquals(messages.size(), 1);
73     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
74     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
75         "WARNING: Server 'flavor' Parameter Name not aligned with Guidelines, Parameter Name [fsb2-flavor], Resource ID [FSB2]. As a result, VF/VFC Profile may miss this information");
76     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
77         "WARNING: Server 'image' Parameter Name not aligned with Guidelines, Parameter Name [fsb2-image], Resource ID [FSB3]. As a result, VF/VFC Profile may miss this information");
78   }
79
80   @Test
81   public void testNovaResourceNetworkUniqueRole() {
82     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
83         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
84         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaNetworkUniqueRoleConvention/positive/");
85     Assert.assertNotNull(messages);
86     Assert.assertEquals(messages.size(), 0);
87
88     messages = ValidationTestUtil.testValidator(baseValidator,
89         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
90         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaNetworkUniqueRoleConvention/negative/");
91     Assert.assertNotNull(messages);
92     Assert.assertEquals(messages.size(), 1);
93     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 1);
94     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
95         "WARNING: A resource is connected twice to the same network role, Network Role [FSB2], Resource ID [Internal1]");
96   }
97
98   @Test
99   public void testNovaServerName() {
100     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
101         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
102         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerNameValidation/positive");
103     Assert.assertNotNull(messages);
104     Assert.assertEquals(messages.size(), 0);
105
106     messages = ValidationTestUtil.testValidator(baseValidator,
107         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
108         "/org/openecomp/validation/validators/attGuideLineValidator/heatNovaServerNameValidation/negative/");
109     Assert.assertNotNull(messages);
110     Assert.assertEquals(messages.size(), 1);
111     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 2);
112     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
113         "WARNING: Server 'name' Parameter Name not aligned with Guidelines, Parameter Name [pcrf_pps_server_4], Resource ID [FSB2]. As a result, VF/VFC Profile may miss this information");
114   }
115
116   @Test
117   public void testVMNameSyncInNova() {
118     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
119         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
120         "/org/openecomp/validation/validators/attGuideLineValidator/novaVMNameSync/input");
121
122     Assert.assertNotNull(messages);
123     Assert.assertEquals(messages.size(), 1);
124
125     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().size(), 4);
126     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(0).getMessage(),
127         "WARNING: Server 'name' Parameter Name not aligned with Guidelines, Parameter Name [CE_server_name], Resource ID [FSB2_legal_2]. As a result, VF/VFC Profile may miss this information");
128     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(1).getMessage(),
129         "WARNING: Server 'flavor' Parameter Name not aligned with Guidelines, Parameter Name [fsb_flavor_names], Resource ID [FSB2_legal_3]. As a result, VF/VFC Profile may miss this information");
130     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(2).getMessage(),
131         "WARNING: Nova Server naming convention in image, flavor and name properties is not consistent, Resource ID [FSB2_illegal_1]");
132     Assert.assertEquals(messages.get("first.yaml").getErrorMessageList().get(3).getMessage(),
133         "WARNING: Nova Server naming convention in image, flavor and name properties is not consistent, Resource ID [FSB2_illegal_2]");
134
135   }
136
137   @Test
138   public void testAvailabilityZoneName() throws IOException {
139     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
140         resourceValidator, HeatResourcesTypes.NOVA_SERVER_RESOURCE_TYPE.getHeatResource(),
141         "/org/openecomp/validation/validators/att_naming_convention/availability_zone_name/input");
142
143     Assert.assertNotNull(messages);
144     Assert.assertEquals(messages.size(), 1);
145
146     Assert.assertEquals(messages.get("hot-nimbus-pps_v1.0.yaml").getErrorMessageList().size(), 2);
147     Assert.assertEquals(
148         messages.get("hot-nimbus-pps_v1.0.yaml").getErrorMessageList().get(0).getMessage(),
149         "WARNING: Server 'Availability Zone' Parameter Name not aligned with Guidelines, Parameter Name [availability_zone_name], Resource ID [availability_zone_illegal_name_1]. As a result, VF/VFC Profile may miss this information");
150     Assert.assertEquals(
151         messages.get("hot-nimbus-pps_v1.0.yaml").getErrorMessageList().get(1).getMessage(),
152         "WARNING: Server 'Availability Zone' Parameter Name not aligned with Guidelines, Parameter Name [availability_zone], Resource ID [availability_zone_illegal_name_2]. As a result, VF/VFC Profile may miss this information");
153   }
154 }