+ /**
+ * Test Standard match type
+ */
+ @Test
+ public void testStandardMatchType() {
+ MatchBuilder builder = new MatchBuilder();
+ builder.setType(StandardMatchType.class);
+ Match match = builder.build();
+ ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
+
+ matchSerializer.serialize(match, out);
+
+ Assert.assertEquals("Wrong match type", 0, out.readUnsignedShort());
+ Assert.assertEquals("Wrong match length", 4, out.readUnsignedShort());
+ Assert.assertEquals("Wrong padding", 0, out.readUnsignedInt());
+ Assert.assertEquals("Unexpected data", 0, out.readableBytes());
+ }
+
+ /**
+ * Test serialize experimenter match entry - with no experimenter
+ * match entry serializer registered
+ */
+ @Test(expected=IllegalStateException.class)
+ public void testSerializeExperimenterMatchEntry() {
+ List<MatchEntry> entries = new ArrayList<>();
+ MatchEntryBuilder builder = new MatchEntryBuilder();
+ builder.setOxmClass(ExperimenterClass.class);
+ builder.setOxmMatchField(OxmMatchFieldClass.class);
+ builder.setHasMask(true);
+ ExperimenterIdCaseBuilder caseBuilder = new ExperimenterIdCaseBuilder();
+ ExperimenterBuilder expBuilder = new ExperimenterBuilder();
+ expBuilder.setExperimenter(new ExperimenterId(42L));
+ caseBuilder.setExperimenter(expBuilder.build());
+ builder.setMatchEntryValue(caseBuilder.build());
+ entries.add(builder.build());
+ ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
+
+ ((OF13MatchSerializer) matchSerializer).serializeMatchEntries(entries, out);
+ }
+
+ private class OxmMatchFieldClass extends MatchField {
+ // only for testing purposes
+ }
+}
\ No newline at end of file