Fix Ipv6 format compression
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / common / IpConversionUtilTest.java
index c360171190bd78ee232d9bda98aaa919a7ef1462..b48b66dad5678ea32c9dccad1f0e5ce6637f45ea 100644 (file)
@@ -5,39 +5,25 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
  */\r
-package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;\r
+package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;\r
 \r
 import java.math.BigInteger;\r
 import java.util.Arrays;\r
 import org.junit.Assert;\r
 import org.junit.Test;\r
 import org.opendaylight.openflowjava.util.ByteBufUtils;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.IpConversionUtil;\r
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchConvertorUtil;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.opendaylight.ipv6.arbitrary.bitmask.fields.rev160224.Ipv6ArbitraryMask;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DottedQuad;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.opendaylight.ipv6.arbitrary.bitmask.fields.rev160224.Ipv6ArbitraryMask;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 \r
-/**\r
- * @author Anton Ivanov aivanov@brocade.com\r
- * @author Sai MarapaReddy sai.marapareddy@gmail.com\r
- *\r
- */\r
 public class IpConversionUtilTest {\r
+    private static Logger LOG = LoggerFactory.getLogger(IpConversionUtilTest.class);\r
 \r
-    private static Logger LOG = LoggerFactory\r
-            .getLogger(IpConversionUtilTest.class);\r
-\r
-\r
-\r
-    /*\r
-     * Test canonicalBinaryV6Address\r
-     */\r
     @Test\r
     public void canonicalBinaryV6AddressTest() {\r
 \r
@@ -52,9 +38,6 @@ public class IpConversionUtilTest {
         }\r
     }\r
 \r
-    /*\r
-     * Test canonicalBinaryV6Prefix\r
-     */\r
     @Test\r
     public void canonicalBinaryV6AddressPrefixTest() {\r
 \r
@@ -86,13 +69,6 @@ public class IpConversionUtilTest {
         }\r
     }\r
 \r
-\r
-    /**\r
-     * Test method for {@link MatchConvertorUtil#getIpv4Mask(byte[])}.\r
-     *\r
-     * @throws Exception\r
-     */\r
-\r
     @Test\r
     public void testcountBitsAsGetIpv4Mask() {\r
         byte[][] maskInputs = new byte[][]{\r
@@ -223,9 +199,38 @@ public class IpConversionUtilTest {
 \r
     @Test\r
     public void compressedIpv6MaskFormatTest() {\r
-        Ipv6ArbitraryMask compressedIpv6IpAddressMask;\r
-        Ipv6ArbitraryMask ipv6IpAddressMask = new Ipv6ArbitraryMask("FFFF:0000:0000:0:0:0:1001:1000");\r
-        compressedIpv6IpAddressMask = IpConversionUtil.compressedIpv6MaskFormat(ipv6IpAddressMask);\r
-        Assert.assertEquals(compressedIpv6IpAddressMask.getValue(),"FFFF::1001:1000");\r
+        Ipv6ArbitraryMask compressedIpv6Mask;\r
+        Ipv6ArbitraryMask ipv6IpAddressMask;\r
+        // zero compression\r
+        ipv6IpAddressMask = new Ipv6ArbitraryMask("FFFF:0000:0000:0:0:0:1001:1000");\r
+        compressedIpv6Mask = IpConversionUtil.compressedIpv6MaskFormat(ipv6IpAddressMask);\r
+        Assert.assertEquals(compressedIpv6Mask.getValue(), "ffff::1001:1000");\r
+        // :: present - no compression\r
+        ipv6IpAddressMask = new Ipv6ArbitraryMask("FFFF::F000:0:0:1000");\r
+        compressedIpv6Mask = IpConversionUtil.compressedIpv6MaskFormat(ipv6IpAddressMask);\r
+        Assert.assertEquals(compressedIpv6Mask.getValue(), "ffff::f000:0:0:1000");\r
+        // more zero sequences - compress only one\r
+        ipv6IpAddressMask = new Ipv6ArbitraryMask("FFFF:0:0:F000:0000:0:0:1000");\r
+        compressedIpv6Mask = IpConversionUtil.compressedIpv6MaskFormat(ipv6IpAddressMask);\r
+        Assert.assertEquals(compressedIpv6Mask.getValue(), "ffff:0:0:f000::1000");\r
+    }\r
+\r
+    @Test\r
+    public void compressedIpv6AddressFormatTest() {\r
+        Ipv6Address compressedIpv6Address;\r
+        Ipv6Address ipv6IpAddressMask;\r
+        // zero compression\r
+        ipv6IpAddressMask = new Ipv6Address("FFFF:0000:0000:0:0:0:1001:1000");\r
+        compressedIpv6Address = IpConversionUtil.compressedIpv6AddressFormat(ipv6IpAddressMask);\r
+        Assert.assertEquals(compressedIpv6Address.getValue(), "ffff::1001:1000");\r
+        // :: present - no compression\r
+        ipv6IpAddressMask = new Ipv6Address("FFFF::F000:0:0:1000");\r
+        compressedIpv6Address = IpConversionUtil.compressedIpv6AddressFormat(ipv6IpAddressMask);\r
+        Assert.assertEquals(compressedIpv6Address.getValue(), "ffff::f000:0:0:1000");\r
+        // more zero sequences - compress only one\r
+        ipv6IpAddressMask = new Ipv6Address("FFFF:0:0:F000:0000:0:0:1000");\r
+        compressedIpv6Address = IpConversionUtil.compressedIpv6AddressFormat(ipv6IpAddressMask);\r
+        Assert.assertEquals(compressedIpv6Address.getValue(), "ffff:0:0:f000::1000");\r
     }\r
+\r
 }\r