1 package org.openecomp.sdc.validation.impl.validators.namingconvention;
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;
10 import java.io.IOException;
14 * Created by TALIO on 2/28/2017.
16 public class NovaServerNamingConventionGuideLineValidatorTest {
18 NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
19 NovaServerNamingConventionGuideLineValidator resourceValidator = new
20 NovaServerNamingConventionGuideLineValidator();
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);
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]");
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);
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");
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);
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");
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);
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]");
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);
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");
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");
122 Assert.assertNotNull(messages);
123 Assert.assertEquals(messages.size(), 1);
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]");
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");
143 Assert.assertNotNull(messages);
144 Assert.assertEquals(messages.size(), 1);
146 Assert.assertEquals(messages.get("hot-nimbus-pps_v1.0.yaml").getErrorMessageList().size(), 2);
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");
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");