Moti Asayag has uploaded a new change for review.

Change subject: core: Add test for mac address format
......................................................................

core: Add test for mac address format

The patch adds a unit test to cover the used patterns
list for verifying the correct format of a mac address.

Change-Id: I74c6c310be787a1bea81f9d344d91e80f48cdc2b
Signed-off-by: Moti Asayag <masa...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
A 
backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/MacAddressPatternTest.java
2 files changed, 85 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/65/19865/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
index b3b50d3..93f406a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
@@ -22,7 +22,7 @@
     protected static final String VALIDATION_MESSAGE_MAC_ADDRESS_NOT_NULL =
             "VALIDATION.VM.NETWORK.MAC.ADDRESS.NOT_NULL";
     protected static final String VALIDATION_MESSAGE_NAME_NOT_NULL = 
"VALIDATION.VM.NETWORK.NAME.NOT_NULL";
-    protected static final String VALIDATION_MESSAGE_MAC_ADDRESS_INVALID = 
"VALIDATION.VM.NETWORK.MAC.ADDRESS.INVALID";
+    public static final String VALIDATION_MESSAGE_MAC_ADDRESS_INVALID = 
"VALIDATION.VM.NETWORK.MAC.ADDRESS.INVALID";
 
     private Guid vmId;
     private Guid vnicProfileId;
diff --git 
a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/MacAddressPatternTest.java
 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/MacAddressPatternTest.java
new file mode 100644
index 0000000..ec18bb2
--- /dev/null
+++ 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/MacAddressPatternTest.java
@@ -0,0 +1,84 @@
+package org.ovirt.engine.core.common.utils;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validator;
+import javax.validation.constraints.Pattern;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.ovirt.engine.core.common.businessentities.network.VmNic;
+import org.ovirt.engine.core.common.validation.group.CreateEntity;
+import org.ovirt.engine.core.common.validation.group.UpdateEntity;
+
+@RunWith(Parameterized.class)
+public class MacAddressPatternTest {
+
+    private final static Class<?>[] ALL_GROUPS = { CreateEntity.class, 
UpdateEntity.class };
+    private final static Class<?>[] CREATE_GROUP = { CreateEntity.class };
+    private final static Class<?>[] UPDATE_GROUP = { UpdateEntity.class };
+
+    private Validator validator;
+    private String address;
+    private boolean expectedResult;
+    private Class<?>[] groups;
+
+    public MacAddressPatternTest(String address, Boolean expectedResult, 
Class<?>[] groups) {
+        this.address = address;
+        this.expectedResult = expectedResult;
+        this.groups = groups;
+        validator = ValidationUtils.getValidator();
+    }
+
+    @Test
+    public void checkIPAdress() {
+        Set<ConstraintViolation<MacAddress>> validate =
+                validator.validate(new MacAddress(address), groups);
+        assertEquals(expectedResult, validate.isEmpty());
+    }
+
+    @Parameterized.Parameters
+    public static Collection<Object[]> ipAddressParams() {
+        return Arrays.asList(new Object[][] {
+                { "aa:aa:aa:aa:aa:aa", true, ALL_GROUPS },
+                { "AA:AA:AA:AA:AA:AA", true, ALL_GROUPS },
+                { "ff:ff:ff:ff:ff:ff", false, ALL_GROUPS },
+                { "FF:FF:FF:FF:FF:FF", false, ALL_GROUPS },
+                { "02:00:00:00:00:00", true, ALL_GROUPS },
+                { "", true, CREATE_GROUP },
+                { "", false, UPDATE_GROUP },
+                { "00:00:00:00:00:00", false, ALL_GROUPS },
+                { "100:00:00:00:00:00", false, ALL_GROUPS },
+                { "00:00:00:00:00:001", false, ALL_GROUPS },
+                { "01:00:00:00:00:00", false, ALL_GROUPS },
+                { "02:00:00:00:XX:XX", false, ALL_GROUPS },
+        });
+    }
+
+    private class MacAddress {
+
+        @Pattern.List({
+                @Pattern(regexp = "(^$)|(" + VmNic.UNICAST_MAC_ADDRESS_FORMAT 
+ ")",
+                        message = VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
+                        groups = { CreateEntity.class }),
+                @Pattern(regexp = VmNic.UNICAST_MAC_ADDRESS_FORMAT,
+                        message = VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
+                        groups = { UpdateEntity.class }),
+                @Pattern(regexp = VmNic.NON_NULLABLE_MAC_ADDRESS_FORMAT,
+                        message = VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
+                        groups = { CreateEntity.class, UpdateEntity.class })
+        })
+        private String address;
+
+        public MacAddress(String address) {
+            this.address = address;
+        }
+    }
+
+}


-- 
To view, visit http://gerrit.ovirt.org/19865
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I74c6c310be787a1bea81f9d344d91e80f48cdc2b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Moti Asayag <masa...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to