import java.util.List;\r
\r
import org.junit.Assert;\r
+import org.junit.Before;\r
import org.junit.Test;\r
-import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.MessageTypeKey;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl;\r
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestInputFactory;\r
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestInputFactoryTest;\r
import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPort;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpEcn;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpProto;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm0Class;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm1Class;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;\r
public class TableFeaturesTest {\r
private static final byte PADDING_IN_MULTIPART_REQUEST_MESSAGE =\r
MultipartRequestInputFactoryTest.PADDING_IN_MULTIPART_REQUEST_MESSAGE;\r
+ private SerializerRegistry registry;\r
+ private OFSerializer<MultipartRequestInput> multipartFactory;\r
+\r
+ /**\r
+ * Initializes serializer registry and stores correct factory in field\r
+ */\r
+ @Before\r
+ public void startUp() {\r
+ registry = new SerializerRegistryImpl();\r
+ registry.init();\r
+ multipartFactory = registry.getSerializer(\r
+ new MessageTypeKey<>(EncodeConstants.OF13_VERSION_ID, MultipartRequestInput.class));\r
+ }\r
\r
/**\r
* @throws Exception\r
entriesBuilder.setHasMask(false);\r
entries.add(entriesBuilder.build());\r
entriesBuilder = new MatchEntriesBuilder();\r
- entriesBuilder.setOxmClass(Nxm0Class.class);\r
+ entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
entriesBuilder.setOxmMatchField(InPort.class);\r
entriesBuilder.setHasMask(false);\r
entries.add(entriesBuilder.build());\r
entriesBuilder.setHasMask(false);\r
entries.add(entriesBuilder.build());\r
entriesBuilder = new MatchEntriesBuilder();\r
- entriesBuilder.setOxmClass(Nxm1Class.class);\r
+ entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
entriesBuilder.setOxmMatchField(IpEcn.class);\r
entriesBuilder.setHasMask(false);\r
entries.add(entriesBuilder.build());\r
MultipartRequestInput message = builder.build();\r
\r
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
- MultipartRequestInputFactory factory = MultipartRequestInputFactory.getInstance();\r
- factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
+ multipartFactory.serialize(message, out);\r
\r
- BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
+ BufferHelper.checkHeaderV13(out, (byte) 18, 232);\r
Assert.assertEquals("Wrong type", 12, out.readUnsignedShort());\r
Assert.assertEquals("Wrong flags", 1, out.readUnsignedShort());\r
out.skipBytes(PADDING_IN_MULTIPART_REQUEST_MESSAGE);\r
Assert.assertEquals("Wrong length", 120, out.readUnsignedShort());\r
- Assert.assertEquals("Wrong table-id", 8, out.readUnsignedByte());\r
+ Assert.assertEquals("Wrong registry-id", 8, out.readUnsignedByte());\r
out.skipBytes(5);\r
Assert.assertEquals("Wrong name", "AAAABBBBCCCCDDDDEEEEFFFFGGGG",\r
ByteBufUtils.decodeNullTerminatedString(out, 32));\r
Assert.assertEquals("Wrong max-entries", 65, out.readUnsignedInt());\r
Assert.assertEquals("Wrong property type", 2, out.readUnsignedShort());\r
Assert.assertEquals("Wrong property length", 6, out.readUnsignedShort());\r
- Assert.assertEquals("Wrong next-table-id", 1, out.readUnsignedByte());\r
- Assert.assertEquals("Wrong next-table-id", 2, out.readUnsignedByte());\r
+ Assert.assertEquals("Wrong next-registry-id", 1, out.readUnsignedByte());\r
+ Assert.assertEquals("Wrong next-registry-id", 2, out.readUnsignedByte());\r
out.skipBytes(2);\r
Assert.assertEquals("Wrong property type", 3, out.readUnsignedShort());\r
Assert.assertEquals("Wrong property length", 5, out.readUnsignedShort());\r
- Assert.assertEquals("Wrong next-table-id", 3, out.readUnsignedByte());\r
+ Assert.assertEquals("Wrong next-registry-id", 3, out.readUnsignedByte());\r
out.skipBytes(3);\r
Assert.assertEquals("Wrong property type", 0, out.readUnsignedShort());\r
Assert.assertEquals("Wrong property length", 12, out.readUnsignedShort());\r
Assert.assertEquals("Wrong instruction type", 1, out.readUnsignedShort());\r
Assert.assertEquals("Wrong instruction length", 4, out.readUnsignedShort());\r
Assert.assertEquals("Wrong length", 96, out.readUnsignedShort());\r
- Assert.assertEquals("Wrong table-id", 8, out.readUnsignedByte());\r
+ Assert.assertEquals("Wrong registry-id", 8, out.readUnsignedByte());\r
out.skipBytes(5);\r
Assert.assertEquals("Wrong name", "AAAABBBBCCCCDDDDEEEEFFFFGGGG",\r
ByteBufUtils.decodeNullTerminatedString(out, 32));\r
Assert.assertEquals("Wrong match class", 0x8000, out.readUnsignedShort());\r
Assert.assertEquals("Wrong match field&mask", 2, out.readUnsignedByte());\r
Assert.assertEquals("Wrong match length", 4, out.readUnsignedByte());\r
- Assert.assertEquals("Wrong match class", 0, out.readUnsignedShort());\r
+ Assert.assertEquals("Wrong match class", 0x8000, out.readUnsignedShort());\r
Assert.assertEquals("Wrong match field&mask", 0, out.readUnsignedByte());\r
Assert.assertEquals("Wrong match length", 4, out.readUnsignedByte());\r
out.skipBytes(4);\r
Assert.assertEquals("Wrong match class", 0x8000, out.readUnsignedShort());\r
Assert.assertEquals("Wrong match field&mask", 20, out.readUnsignedByte());\r
Assert.assertEquals("Wrong match length", 1, out.readUnsignedByte());\r
- Assert.assertEquals("Wrong match class", 1, out.readUnsignedShort());\r
+ Assert.assertEquals("Wrong match class", 0x8000, out.readUnsignedShort());\r
Assert.assertEquals("Wrong match field&mask", 18, out.readUnsignedByte());\r
Assert.assertEquals("Wrong match length", 1, out.readUnsignedByte());\r
out.skipBytes(4);\r