Bump mdsal to 5.0.2
[openflowplugin.git] / extension / openflowjava-extension-nicira / src / test / java / org / opendaylight / openflowjava / nx / codec / match / NxmHeaderTest.java
index e05d0b13dde506ffa3b94a5d2c46453ce7d0974b..530dd867d9648941287e4bd475922d300e904931 100644 (file)
@@ -1,11 +1,10 @@
-/**
+/*
  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.openflowjava.nx.codec.match;
 
 import static org.junit.Assert.assertEquals;
@@ -13,76 +12,117 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
-import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class NxmHeaderTest {
 
-    NxmHeader nxmHeader;
-
-    private static long header;
-    private static final int NXM_FIELD_CODE = 4;
-    private static final int VALUE_LENGTH = 14;
-
-    @Test
-    public void NxmHeaderTest() {
-        header = createHeader();
-        nxmHeader = new NxmHeader(header);
-
-        assertEquals(OxmMatchConstants.NXM_1_CLASS, nxmHeader.getOxmClass());
-        assertEquals(NXM_FIELD_CODE, nxmHeader.getNxmField());
-        assertEquals(false, nxmHeader.isHasMask());
-        assertEquals(VALUE_LENGTH, nxmHeader.getLength());
-    }
-
-    @Test
-    public void hashCodeTest() {
-
-    }
+    private static final Uint64 NO_MASK_HEADER = Uint64.valueOf("80000496", 16);
+    private static final Uint64 MASK_HEADER = Uint64.valueOf("80000596", 16);
+    private static final Uint64 EXP_HEADER = Uint64.valueOf("FFFFF4F300F2AB31", 16);
 
     @Test
-    public void equalsTest() {
-        Object notHeader = new Object();
-        header = createHeader();
-        nxmHeader = new NxmHeader(header);
-
-        assertFalse(nxmHeader.equals(notHeader));
+    public void nxmHeaderNoMaskTest() {
+        NxmHeader nxmHeaderFromBigInt = new NxmHeader(NO_MASK_HEADER);
+
+        assertEquals(0x8000, nxmHeaderFromBigInt.getOxmClass());
+        assertEquals(0x2, nxmHeaderFromBigInt.getNxmField());
+        assertFalse(nxmHeaderFromBigInt.isHasMask());
+        assertEquals(0x96, nxmHeaderFromBigInt.getLength());
+        assertEquals(0x80000496L, nxmHeaderFromBigInt.toLong());
+        assertFalse(nxmHeaderFromBigInt.isExperimenter());
+
+        NxmHeader nxmHeaderFromFields = new NxmHeader(
+                nxmHeaderFromBigInt.getOxmClass(),
+                nxmHeaderFromBigInt.getNxmField(),
+                nxmHeaderFromBigInt.isHasMask(),
+                nxmHeaderFromBigInt.getLength());
+
+        assertEquals(NO_MASK_HEADER, nxmHeaderFromFields.toUint64());
+        assertEquals(0x80000496L, nxmHeaderFromFields.toLong());
+        assertFalse(nxmHeaderFromFields.isExperimenter());
+
+        NxmHeader nxmHeaderFromLong = new NxmHeader(NO_MASK_HEADER.longValue());
+
+        assertEquals(NO_MASK_HEADER, nxmHeaderFromLong.toUint64());
+        assertEquals(0x80000496L, nxmHeaderFromLong.toLong());
+        assertFalse(nxmHeaderFromLong.isExperimenter());
+
+        assertEquals(nxmHeaderFromBigInt, nxmHeaderFromFields);
+        assertEquals(nxmHeaderFromBigInt, nxmHeaderFromLong);
+        assertEquals(nxmHeaderFromLong, nxmHeaderFromFields);
+        assertEquals(nxmHeaderFromBigInt.hashCode(), nxmHeaderFromFields.hashCode());
+        assertEquals(nxmHeaderFromBigInt.hashCode(), nxmHeaderFromLong.hashCode());
     }
 
     @Test
-    public void equalsTest1() {
-        header = createHeader();
-        nxmHeader = new NxmHeader(header);
-
-        assertTrue(nxmHeader.equals(nxmHeader));
+    public void nxmHeaderMaskTest() {
+        NxmHeader nxmHeaderFromBigInt = new NxmHeader(MASK_HEADER);
+
+        assertEquals(0x8000, nxmHeaderFromBigInt.getOxmClass());
+        assertEquals(0x2, nxmHeaderFromBigInt.getNxmField());
+        assertTrue(nxmHeaderFromBigInt.isHasMask());
+        assertEquals(0x96, nxmHeaderFromBigInt.getLength());
+        assertEquals(0x80000596L, nxmHeaderFromBigInt.toLong());
+        assertFalse(nxmHeaderFromBigInt.isExperimenter());
+
+        NxmHeader nxmHeaderFromFields = new NxmHeader(
+                nxmHeaderFromBigInt.getOxmClass(),
+                nxmHeaderFromBigInt.getNxmField(),
+                nxmHeaderFromBigInt.isHasMask(),
+                nxmHeaderFromBigInt.getLength());
+
+        assertEquals(MASK_HEADER, nxmHeaderFromFields.toUint64());
+        assertEquals(0x80000596L, nxmHeaderFromFields.toLong());
+        assertFalse(nxmHeaderFromFields.isExperimenter());
+
+        NxmHeader nxmHeaderFromLong = new NxmHeader(MASK_HEADER.longValue());
+
+        assertEquals(MASK_HEADER, nxmHeaderFromLong.toUint64());
+        assertEquals(0x80000596L, nxmHeaderFromLong.toLong());
+        assertFalse(nxmHeaderFromLong.isExperimenter());
+
+        assertEquals(nxmHeaderFromBigInt, nxmHeaderFromFields);
+        assertEquals(nxmHeaderFromBigInt, nxmHeaderFromLong);
+        assertEquals(nxmHeaderFromLong, nxmHeaderFromFields);
+        assertEquals(nxmHeaderFromBigInt.hashCode(), nxmHeaderFromFields.hashCode());
+        assertEquals(nxmHeaderFromBigInt.hashCode(), nxmHeaderFromLong.hashCode());
     }
 
     @Test
-    public void toStringTest() {
-        header = createHeader();
-        nxmHeader = new NxmHeader(header);
-
-        String shouldBe = new String("NxmHeader " +
-                                        "[headerAsLong=" + header + ", " +
-                                        "oxmClass=" + OxmMatchConstants.NXM_1_CLASS + "," +
-                                        " nxmField=" + NXM_FIELD_CODE + "," +
-                                        " hasMask=" + false + "," +
-                                        " length=" + VALUE_LENGTH + "]");
-
-        assertEquals(shouldBe, nxmHeader.toString());
+    public void nxmHeaderExpTest() {
+        NxmHeader nxmHeaderFromBigInt = new NxmHeader(EXP_HEADER);
+
+        assertEquals(0xFFFF, nxmHeaderFromBigInt.getOxmClass());
+        assertEquals(0xF4 >>> 1, nxmHeaderFromBigInt.getNxmField());
+        assertFalse(nxmHeaderFromBigInt.isHasMask());
+        assertEquals(0xF3, nxmHeaderFromBigInt.getLength());
+        assertEquals(0xFFFFF4F300F2AB31L, nxmHeaderFromBigInt.toLong());
+        assertTrue(nxmHeaderFromBigInt.isExperimenter());
+        assertEquals(0x00F2AB31L, nxmHeaderFromBigInt.getExperimenterId());
+
+        NxmHeader nxmHeaderFromFields = new NxmHeader(
+                nxmHeaderFromBigInt.getNxmField(),
+                nxmHeaderFromBigInt.isHasMask(),
+                nxmHeaderFromBigInt.getLength(),
+                nxmHeaderFromBigInt.getExperimenterId());
+
+        assertEquals(EXP_HEADER, nxmHeaderFromFields.toUint64());
+        assertEquals(0xFFFFF4F300F2AB31L, nxmHeaderFromFields.toLong());
+        assertTrue(nxmHeaderFromFields.isExperimenter());
+        assertEquals(0x00F2AB31L, nxmHeaderFromFields.getExperimenterId());
+
+        NxmHeader nxmHeaderFromLong = new NxmHeader(EXP_HEADER.longValue());
+
+        assertEquals(EXP_HEADER, nxmHeaderFromLong.toUint64());
+        assertEquals(0xFFFFF4F300F2AB31L, nxmHeaderFromLong.toLong());
+        assertTrue(nxmHeaderFromLong.isExperimenter());
+        assertEquals(0x00F2AB31L, nxmHeaderFromLong.getExperimenterId());
+
+        assertEquals(nxmHeaderFromBigInt, nxmHeaderFromFields);
+        assertEquals(nxmHeaderFromBigInt, nxmHeaderFromLong);
+        assertEquals(nxmHeaderFromLong, nxmHeaderFromFields);
+        assertEquals(nxmHeaderFromBigInt.hashCode(), nxmHeaderFromFields.hashCode());
+        assertEquals(nxmHeaderFromBigInt.hashCode(), nxmHeaderFromLong.hashCode());
     }
 
-
-    private long createHeader() {
-        long result = 0;
-        int oxmClass = 1 << 16;
-        result = result | oxmClass;
-        int oxmField = NXM_FIELD_CODE << 9;
-        result = result | oxmField;
-        int mask = 0 << 8;
-        result = result | mask;
-        int length = VALUE_LENGTH;
-        result = result | length;
-
-        return result;
-    }
-}
\ No newline at end of file
+}