4d3718ee8dc0b79d63bbe0cafb23e184a874f350
[sdc.git] /
1 package org.openecomp.sdc.validation.impl.validators.namingconvention;
2
3 import java.util.Map;
4
5 import org.openecomp.core.validation.types.MessageContainer;
6 import org.openecomp.sdc.heat.datatypes.model.HeatResourcesTypes;
7 import org.openecomp.sdc.validation.impl.validators.NamingConventionGuideLineValidator;
8 import org.openecomp.sdc.validation.util.ValidationTestUtil;
9 import org.testng.Assert;
10 import org.testng.annotations.Test;
11
12 public class VirtualMachineInterfaceGuidelineValidatorTest {
13   private static final String PATH =
14       "/org/openecomp/validation/validators/guideLineValidator/vlan_validation/";
15
16   @Test
17   public void modeledThroughResourceGroupPositive() {
18
19     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
20     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
21         VirtualMachineInterfaceGuidelineValidator();
22     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
23         resourceValidator,
24         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
25         PATH + "modeled_through_resource_group/positive_test/input");
26
27     Assert.assertNotNull(messages);
28     Assert.assertEquals(messages.size(), 0);
29
30   }
31
32   @Test
33   public void modeledThroughResourceGroupNegativeTwoValuesInList() {
34
35     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
36     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
37         VirtualMachineInterfaceGuidelineValidator();
38     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
39         resourceValidator,
40         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
41         PATH + "modeled_through_resource_group/negative_test/input");
42
43     Assert.assertNotNull(messages);
44     Assert.assertEquals(messages.size(), 1);
45
46     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
47     Assert.assertEquals(
48         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
49         "WARNING: [VlANG1]: VLAN Resource will not be translated as the VLAN Sub-interface " +
50             "[vdbe_0_subint_untr_vmi_0] is not modeled as resource group");
51   }
52
53   @Test
54   public void modeledThroughResourceGroupNegativeNonStringGetParam() {
55
56     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
57     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
58         VirtualMachineInterfaceGuidelineValidator();
59     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
60         resourceValidator,
61         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
62         PATH + "modeled_through_resource_group/negative_test_non_string/input");
63
64     Assert.assertNotNull(messages);
65     Assert.assertEquals(messages.size(), 1);
66
67     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
68     Assert.assertEquals(
69         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
70         "WARNING: [VlANG1]: VLAN Resource will not be translated as the VLAN Sub-interface " +
71             "[vdbe_0_subint_untr_vmi_0] is not modeled as resource group");
72   }
73
74   @Test
75   public void modeledThroughResourceGroupNegativeResource() {
76
77     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
78     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
79         VirtualMachineInterfaceGuidelineValidator();
80     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
81         resourceValidator,
82         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
83         PATH + "modeled_through_resource_group/negative_get_resource/input");
84
85     Assert.assertNotNull(messages);
86     Assert.assertEquals(messages.size(), 1);
87
88     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
89     Assert.assertEquals(
90         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
91         "WARNING: [VlANG1]: VLAN Resource will not be translated as the VLAN Sub-interface " +
92             "[vdbe_0_subint_untr_vmi_0] is not modeled as resource group");
93   }
94
95
96   @Test
97   public void vlanAloneInFilePositive() {
98
99     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
100     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
101         VirtualMachineInterfaceGuidelineValidator();
102     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
103         resourceValidator,
104         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
105         PATH + "single_vlan_resource/positive_test/input");
106
107     Assert.assertNotNull(messages);
108     Assert.assertEquals(messages.size(), 0);
109
110   }
111
112   @Test
113   public void vlanAloneInFileNegative_2vlans() {
114
115     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
116     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
117         VirtualMachineInterfaceGuidelineValidator();
118     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
119         resourceValidator,
120         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
121         PATH + "single_vlan_resource/negative_test/two_vlans");
122
123     Assert.assertNotNull(messages);
124     Assert.assertEquals(messages.size(), 1);
125
126     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
127     Assert.assertEquals(
128         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
129         "ERROR: [VlANG2]: There should not be any Compute Server Node, Port, " +
130             "Parent Port in nested file [nested.yml]");
131   }
132
133   @Test
134   public void vlanAloneInFileNegative_vlanAndNova() {
135
136     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
137     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
138         VirtualMachineInterfaceGuidelineValidator();
139     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
140         resourceValidator,
141         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
142         PATH + "single_vlan_resource/negative_test/vlan_and_nova");
143
144     Assert.assertNotNull(messages);
145     Assert.assertEquals(messages.size(), 1);
146
147     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
148     Assert.assertEquals(
149         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
150         "ERROR: [VlANG2]: There should not be any Compute Server Node, Port, " +
151             "Parent Port in nested file [nested.yml]");
152   }
153
154   @Test
155   public void namingConventionNegative(){
156     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
157     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
158         VirtualMachineInterfaceGuidelineValidator();
159     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
160         resourceValidator,
161         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
162         PATH + "naming_convention/negative_test/input");
163
164     Assert.assertNotNull(messages);
165     Assert.assertEquals(messages.size(), 1);
166
167     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 2);
168     Assert.assertEquals(
169         messages.get("nested.yml").getErrorMessageList().get(1).getMessage(),
170         "WARNING: [VlANG3]: Network role associated with VLAN Sub-interface " +
171             "id[template_wrong_naming_Vlan_2] is not following the naming convention");
172
173   }
174
175   @Test
176   public void namingConventionPositive(){
177     NamingConventionGuideLineValidator baseValidator = new NamingConventionGuideLineValidator();
178     VirtualMachineInterfaceGuidelineValidator resourceValidator = new
179         VirtualMachineInterfaceGuidelineValidator();
180     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
181         resourceValidator,
182         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
183         PATH + "naming_convention/positive_test/input");
184
185     Assert.assertNotNull(messages);
186     Assert.assertEquals(messages.size(), 0);
187   }
188
189 }