Bug 2756 - Match model update
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / match / OxmIpv6FlabelDeserializerTest.java
index 2c29dce18e7a8a4ef0c13c447f62504eb7ff7e00..2a08e85ed1445f829f8e0717b8b2a44522ae31ae 100644 (file)
@@ -13,10 +13,10 @@ import io.netty.buffer.ByteBuf;
 import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.Ipv6FlabelMatchEntry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Flabel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Flabel;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6FlabelCase;
 
 /**
  * @author michal.polkorab
@@ -33,12 +33,34 @@ public class OxmIpv6FlabelDeserializerTest {
 
         buffer.skipBytes(4); // skip XID
         OxmIpv6FlabelDeserializer deserializer = new OxmIpv6FlabelDeserializer();
-        MatchEntries entry = deserializer.deserialize(buffer);
+        MatchEntry entry = deserializer.deserialize(buffer);
 
         Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry.getOxmClass());
         Assert.assertEquals("Wrong entry field", Ipv6Flabel.class, entry.getOxmMatchField());
         Assert.assertEquals("Wrong entry hasMask", false, entry.isHasMask());
-        Assert.assertEquals("Wrong entry value", 2, 
-                entry.getAugmentation(Ipv6FlabelMatchEntry.class).getIpv6Flabel().getValue().intValue());
+        Assert.assertEquals("Wrong entry value", 2,
+                ((Ipv6FlabelCase) entry.getMatchEntryValue()).getIpv6Flabel()
+                .getIpv6Flabel().getValue().intValue());
+    }
+
+    /**
+     * Tests {@link OxmIpv6FlabelDeserializer#deserialize(ByteBuf)}
+     */
+    @Test
+    public void testWithMask() {
+        ByteBuf buffer = BufferHelper.buildBuffer("80 00 39 08 00 00 00 02 00 00 00 05");
+
+        buffer.skipBytes(4); // skip XID
+        OxmIpv6FlabelDeserializer deserializer = new OxmIpv6FlabelDeserializer();
+        MatchEntry entry = deserializer.deserialize(buffer);
+
+        Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry.getOxmClass());
+        Assert.assertEquals("Wrong entry field", Ipv6Flabel.class, entry.getOxmMatchField());
+        Assert.assertEquals("Wrong entry hasMask", true, entry.isHasMask());
+        Assert.assertEquals("Wrong entry value", 2,
+                ((Ipv6FlabelCase) entry.getMatchEntryValue()).getIpv6Flabel()
+                .getIpv6Flabel().getValue().intValue());
+        Assert.assertArrayEquals("Wrong entry mask", new byte[]{0, 0, 0, 5},
+                ((Ipv6FlabelCase) entry.getMatchEntryValue()).getIpv6Flabel().getMask());
     }
 }
\ No newline at end of file