import java.util.List;
import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
+import org.opendaylight.openflowjava.protocol.api.extensibility.MessageTypeKey;
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
+import org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl;
import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
-import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
-import org.opendaylight.openflowjava.protocol.impl.util.EncodeConstants;
+import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.IpAddressAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PortActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwDst;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetTpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlagsV10;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowWildcardsV10;
*/
public class OF10FlowModInputMessageFactoryTest {
+ private SerializerRegistry registry;
+ private OFSerializer<FlowModInput> flowModFactory;
+
/**
- * @throws Exception
+ * Initializes serializer registry and stores correct factory in field
+ */
+ @Before
+ public void startUp() {
+ registry = new SerializerRegistryImpl();
+ registry.init();
+ flowModFactory = registry.getSerializer(
+ new MessageTypeKey<>(EncodeConstants.OF10_VERSION_ID, FlowModInput.class));
+ }
+
+ /**
+ * @throws Exception
* Testing of {@link OF10FlowModInputMessageFactory} for correct translation from POJO
*/
@Test
builder.setBufferId(2L);
builder.setOutPort(new PortNumber(4422L));
builder.setFlagsV10(new FlowModFlagsV10(true, false, true));
- List<ActionsList> actions = new ArrayList<>();
- ActionsListBuilder actionsListBuilder = new ActionsListBuilder();
+ List<Action> actions = new ArrayList<>();
ActionBuilder actionBuilder = new ActionBuilder();
actionBuilder.setType(SetNwDst.class);
IpAddressActionBuilder ipBuilder = new IpAddressActionBuilder();
ipBuilder.setIpAddress(new Ipv4Address("2.2.2.2"));
actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build());
- actionsListBuilder.setAction(actionBuilder.build());
- actions.add(actionsListBuilder.build());
+ actions.add(actionBuilder.build());
actionBuilder = new ActionBuilder();
actionBuilder.setType(SetTpSrc.class);
PortActionBuilder portBuilder = new PortActionBuilder();
portBuilder.setPort(new PortNumber(42L));
actionBuilder.addAugmentation(PortAction.class, portBuilder.build());
- actionsListBuilder.setAction(actionBuilder.build());
- actions.add(actionsListBuilder.build());
- builder.setActionsList(actions);
+ actions.add(actionBuilder.build());
+ builder.setAction(actions);
FlowModInput message = builder.build();
-
+
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
- OF10FlowModInputMessageFactory factory = OF10FlowModInputMessageFactory.getInstance();
- factory.messageToBuffer(EncodeConstants.OF10_VERSION_ID, out, message);
-
- BufferHelper.checkHeaderV10(out, factory.getMessageType(), factory.computeLength(message));
+ flowModFactory.serialize(message, out);
+
+ BufferHelper.checkHeaderV10(out, (byte) 14, 88);
Assert.assertEquals("Wrong wildcards", 3678463, out.readUnsignedInt());
Assert.assertEquals("Wrong inPort", 58, out.readUnsignedShort());
byte[] dlSrc = new byte[6];