c82271e1c74592b1e7c7a9d997e5b8cf30c0434c
[sdc.git] /
1 package org.openecomp.sdc.validation.impl.validators.heatresource;
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.HeatResourceValidator;
6 import org.openecomp.sdc.validation.util.ValidationTestUtil;
7 import org.testng.Assert;
8 import org.testng.annotations.Test;
9
10 import java.util.Map;
11
12 /**
13  * @author KATYR
14  * @since January 22, 2018
15  */
16
17 public class VirtualMachineInterfaceValidatorTest {
18   private static final String PATH =
19       "/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/";
20
21
22   @Test
23   public void hasSingleParentPortNegative()  {
24     HeatResourceValidator baseValidator = new HeatResourceValidator();
25     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
26     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
27         resourceValidator,
28         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
29         PATH + "vlan_multiple_parent_ports/negative_test/input");
30
31     Assert.assertNotNull(messages);
32     Assert.assertEquals(messages.size(), 1);
33
34     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
35     Assert.assertEquals(
36         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
37         "ERROR: [VLAN1]: More than one parent port found, " +
38             "there should be only one parent port for a VLAN sub-interface ID [template_Vlan_2]");
39   }
40
41   @Test
42   public void hasSingleParentPortNegativeWithGetResource()  {
43     HeatResourceValidator baseValidator = new HeatResourceValidator();
44     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
45     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
46         resourceValidator,
47         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
48         PATH + "vlan_multiple_parent_ports/negative_get_resource/input");
49
50     Assert.assertNotNull(messages);
51     Assert.assertEquals(messages.size(), 0);
52   }
53
54
55   @Test
56   public void hasSingleParentPortPositive()  {
57     HeatResourceValidator baseValidator = new HeatResourceValidator();
58     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
59     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
60         resourceValidator,
61         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
62         PATH + "vlan_multiple_parent_ports/positive_test/input");
63
64     Assert.assertNotNull(messages);
65     Assert.assertEquals(messages.size(), 0);
66
67
68   }
69
70
71   @Test
72   public void hasBothPropertiesMissingTagNegative()  {
73     HeatResourceValidator baseValidator = new HeatResourceValidator();
74     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
75     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
76         resourceValidator,
77         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
78         PATH + "vlan_has_two_properties/negative_tag_missing/input");
79
80     Assert.assertNotNull(messages);
81     Assert.assertEquals(messages.size(), 1);
82
83     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
84     Assert.assertEquals(
85         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
86         "WARNING: [VLAN2]: VLAN Tag property " +
87             "virtual_machine_interface_properties_sub_interface_vlan_tag " +
88             "is missing in VLAN Resource ID [template_Vlan_2]");
89   }
90
91   @Test
92   public void hasBothPropertiesMissingRefsNegative()  {
93     HeatResourceValidator baseValidator = new HeatResourceValidator();
94     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
95     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
96         resourceValidator,
97         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
98         PATH + "vlan_has_two_properties/negative_refs_missing/input");
99
100     Assert.assertNotNull(messages);
101     Assert.assertEquals(messages.size(), 1);
102
103     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
104     Assert.assertEquals(
105         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
106         "WARNING: [VLAN2]: Parent port property virtual_machine_interface_refs is " +
107             "missing in VLAN Resource ID [template_Vlan_2]");
108   }
109
110   @Test
111   public void hasBothPropertiesBothMissingPositiveNotVLAN()  {
112     HeatResourceValidator baseValidator = new HeatResourceValidator();
113     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
114     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
115         resourceValidator,
116         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
117         PATH + "vlan_has_two_properties/negative_both_missing/input");
118
119     Assert.assertNotNull(messages);
120     Assert.assertEquals(messages.size(), 0);
121
122   }
123
124
125   @Test
126   public void hasBothPropertiesPositive()  {
127     HeatResourceValidator baseValidator = new HeatResourceValidator();
128     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
129     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
130         resourceValidator,
131         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
132         PATH + "vlan_has_two_properties/positive_test/input");
133
134     Assert.assertNotNull(messages);
135     Assert.assertEquals(messages.size(), 0);
136
137
138   }
139
140   @Test
141   public void hasSingleParentPortNegativeHasBothPropertiesNegative()  {
142     HeatResourceValidator baseValidator = new HeatResourceValidator();
143     VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
144     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
145         resourceValidator,
146         HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
147         PATH + "vlan_mixed/negative_test/input");
148
149     Assert.assertNotNull(messages);
150     Assert.assertEquals(messages.size(), 1);
151
152
153     Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
154         Assert.assertEquals(
155         messages.get("nested.yml").getErrorMessageList().get(0).getMessage(),
156         "WARNING: [VLAN2]: VLAN Tag property " +
157             "virtual_machine_interface_properties_sub_interface_vlan_tag is missing in " +
158             "VLAN Resource ID [template_Vlan_2]");
159
160   }
161
162
163 }