1 package org.openecomp.sdc.validation.impl.validators.heatresource;
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;
14 * @since January 22, 2018
17 public class VirtualMachineInterfaceValidatorTest {
18 private static final String PATH =
19 "/org/openecomp/validation/validators/heat_validator/vlan_resource_validation/";
23 public void hasSingleParentPortNegative() {
24 HeatResourceValidator baseValidator = new HeatResourceValidator();
25 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
26 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
28 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
29 PATH + "vlan_multiple_parent_ports/negative_test/input");
31 Assert.assertNotNull(messages);
32 Assert.assertEquals(messages.size(), 1);
34 Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
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]");
42 public void hasSingleParentPortNegativeWithGetResource() {
43 HeatResourceValidator baseValidator = new HeatResourceValidator();
44 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
45 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
47 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
48 PATH + "vlan_multiple_parent_ports/negative_get_resource/input");
50 Assert.assertNotNull(messages);
51 Assert.assertEquals(messages.size(), 0);
56 public void hasSingleParentPortPositive() {
57 HeatResourceValidator baseValidator = new HeatResourceValidator();
58 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
59 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
61 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
62 PATH + "vlan_multiple_parent_ports/positive_test/input");
64 Assert.assertNotNull(messages);
65 Assert.assertEquals(messages.size(), 0);
72 public void hasBothPropertiesMissingTagNegative() {
73 HeatResourceValidator baseValidator = new HeatResourceValidator();
74 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
75 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
77 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
78 PATH + "vlan_has_two_properties/negative_tag_missing/input");
80 Assert.assertNotNull(messages);
81 Assert.assertEquals(messages.size(), 1);
83 Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
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]");
92 public void hasBothPropertiesMissingRefsNegative() {
93 HeatResourceValidator baseValidator = new HeatResourceValidator();
94 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
95 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
97 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
98 PATH + "vlan_has_two_properties/negative_refs_missing/input");
100 Assert.assertNotNull(messages);
101 Assert.assertEquals(messages.size(), 1);
103 Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
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]");
111 public void hasBothPropertiesBothMissingPositiveNotVLAN() {
112 HeatResourceValidator baseValidator = new HeatResourceValidator();
113 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
114 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
116 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
117 PATH + "vlan_has_two_properties/negative_both_missing/input");
119 Assert.assertNotNull(messages);
120 Assert.assertEquals(messages.size(), 0);
126 public void hasBothPropertiesPositive() {
127 HeatResourceValidator baseValidator = new HeatResourceValidator();
128 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
129 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
131 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
132 PATH + "vlan_has_two_properties/positive_test/input");
134 Assert.assertNotNull(messages);
135 Assert.assertEquals(messages.size(), 0);
141 public void hasSingleParentPortNegativeHasBothPropertiesNegative() {
142 HeatResourceValidator baseValidator = new HeatResourceValidator();
143 VirtualMachineInterfaceValidator resourceValidator = new VirtualMachineInterfaceValidator();
144 Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(baseValidator,
146 HeatResourcesTypes.CONTRAIL_V2_VIRTUAL_MACHINE_INTERFACE_RESOURCE_TYPE.getHeatResource(),
147 PATH + "vlan_mixed/negative_test/input");
149 Assert.assertNotNull(messages);
150 Assert.assertEquals(messages.size(), 1);
153 Assert.assertEquals(messages.get("nested.yml").getErrorMessageList().size(), 1);
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]");