X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflow-protocol-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fopenflowjava%2Fprotocol%2Fimpl%2Fserialization%2Ffactories%2FTableModInputMessageFactoryTest.java;h=6423a3262328e45420053878fbd7a619d7f035ef;hb=07de1ed897da9d7dc70c6d550f38c59339ed751e;hp=0cb423070cd9e6dbe878b910d95c8b9f91158b14;hpb=3c8c1e026f04efbca0a8e1bb8a5c87acbac379be;p=openflowjava.git diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactoryTest.java index 0cb42307..6423a326 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/TableModInputMessageFactoryTest.java @@ -1,54 +1,69 @@ -/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.opendaylight.openflowjava.protocol.impl.serialization.factories; - -import io.netty.buffer.ByteBuf; -import io.netty.buffer.UnpooledByteBufAllocator; -import junit.framework.Assert; - -import org.junit.Test; -import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest; -import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortConfig; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInputBuilder; - -/** - * @author timotej.kubas - * @author michal.polkorab - */ -public class TableModInputMessageFactoryTest { - private static final byte MESSAGE_TYPE = 17; - private static final byte PADDING_IN_TABLE_MOD_MESSAGE = 3; - - /** - * Testing of {@link TableModInputMessageFactory} for correct translation from POJO - * @throws Exception - */ - @Test - public void testTableModInput() throws Exception { - TableModInputBuilder builder = new TableModInputBuilder(); - BufferHelper.setupHeader(builder); - builder.setTableId(new TableId(9L)); - //TODO - fix test - builder.setConfig(new PortConfig(true, false, true, false)); - TableModInput message = builder.build(); - - ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); - TableModInputMessageFactory factory = TableModInputMessageFactory.getInstance(); - factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message); - - BufferHelper.checkHeaderV13(out, MESSAGE_TYPE, 16); - Assert.assertEquals("Wrong TableID", message.getTableId().getValue().intValue(), out.readByte()); - out.skipBytes(PADDING_IN_TABLE_MOD_MESSAGE); - Assert.assertEquals("Wrong PortConfig", message.getConfig(), createPortConfig(out.readInt())); - } - - private static PortConfig createPortConfig(long input){ - final Boolean _portDown = ((input) & (1<<0)) > 0; - final Boolean _noRecv = ((input) & (1<<2)) > 0; - final Boolean _noFwd = ((input) & (1<<5)) > 0; - final Boolean _noPacketIn = ((input) & (1<<6)) > 0; - return new PortConfig(_noFwd, _noPacketIn, _noRecv, _portDown); - } -} +/* + * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.openflowjava.protocol.impl.serialization.factories; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.UnpooledByteBufAllocator; +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.api.util.EncodeConstants; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInputBuilder; + +/** + * @author timotej.kubas + * @author michal.polkorab + */ +public class TableModInputMessageFactoryTest { + private static final byte MESSAGE_TYPE = 17; + private static final byte PADDING_IN_TABLE_MOD_MESSAGE = 3; + private SerializerRegistry registry; + private OFSerializer tableModFactory; + + /** + * Initializes serializer registry and stores correct factory in field + */ + @Before + public void startUp() { + registry = new SerializerRegistryImpl(); + registry.init(); + tableModFactory = registry.getSerializer( + new MessageTypeKey<>(EncodeConstants.OF13_VERSION_ID, TableModInput.class)); + } + + /** + * Testing of {@link TableModInputMessageFactory} for correct translation from POJO + * @throws Exception + */ + @Test + public void testTableModInput() throws Exception { + TableModInputBuilder builder = new TableModInputBuilder(); + BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID); + builder.setTableId(new TableId(9L)); + builder.setConfig(new TableConfig(true)); + TableModInput message = builder.build(); + + ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); + tableModFactory.serialize(message, out); + + BufferHelper.checkHeaderV13(out, MESSAGE_TYPE, 16); + Assert.assertEquals("Wrong TableID", message.getTableId().getValue().intValue(), out.readUnsignedByte()); + out.skipBytes(PADDING_IN_TABLE_MOD_MESSAGE); + Assert.assertEquals("Wrong TableConfig", 8, out.readUnsignedInt()); + } + +}