use of org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector in project openflowplugin by opendaylight.
the class BundleControlFactoryTest method testDeserializeWithProperties.
@Test
public void testDeserializeWithProperties() {
ByteBuf buffer = ByteBufUtils.hexStringToByteBuf(// bundle ID
"00 00 00 01 " + // type
"00 05 " + // flags
"00 02 " + // type 1
"ff ff " + // length 1
"00 0c " + // experimenter ID 1
"00 00 00 01 " + // experimenter type 1
"00 00 00 02 " + // experimenter data 1
"00 00 00 00 " + // type 2
"00 00 " + // length 2
"00 04 " + // data 2
"00 00 00 00");
Mockito.when(registry.getDeserializer(Matchers.any(MessageCodeKey.class))).thenReturn(experimenterPropertyDeserializer);
((DeserializerRegistryInjector) factory).injectDeserializerRegistry(registry);
BundleControlOnf builtByFactory = factory.deserialize(buffer);
Assert.assertEquals(1, builtByFactory.getOnfControlGroupingData().getBundleId().getValue().intValue());
BundleFlags flags = new BundleFlags(false, true);
Assert.assertEquals("Wrong atomic flag", flags.isAtomic(), builtByFactory.getOnfControlGroupingData().getFlags().isAtomic());
Assert.assertEquals("Wrong ordered flag", flags.isOrdered(), builtByFactory.getOnfControlGroupingData().getFlags().isOrdered());
Assert.assertEquals("Wrong type", BundleControlType.ONFBCTCOMMITREPLY, builtByFactory.getOnfControlGroupingData().getType());
BundleProperty property = builtByFactory.getOnfControlGroupingData().getBundleProperty().get(0);
Assert.assertEquals("Wrong bundle property type", BundlePropertyType.ONFETBPTEXPERIMENTER, property.getType());
BundlePropertyExperimenter experimenterProperty = (BundlePropertyExperimenter) property.getBundlePropertyEntry();
Assert.assertEquals("Wrong experimenter ID", 1, experimenterProperty.getExperimenter().getValue().intValue());
Assert.assertEquals("Wrong experimenter type", 2, experimenterProperty.getExpType().longValue());
Mockito.verify(experimenterPropertyDeserializer, Mockito.times(1)).deserialize(buffer);
}
Aggregations