X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fimpl%2FMessageParserTest.java;h=d1c0b066d7a0a5ef15399a0544deb380177b0b01;hb=8f15fef884bc20239625850c4a2fcdaf36395526;hp=baf2d7d761373a4dfb00895eed62a4d16b0470ee;hpb=3a186f6f164122ab47f816b5761ef526f939f946;p=controller.git diff --git a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/MessageParserTest.java b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/MessageParserTest.java index baf2d7d761..d1c0b066d7 100644 --- a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/MessageParserTest.java +++ b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/MessageParserTest.java @@ -13,30 +13,29 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; - -import java.util.Queue; - import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import io.netty.channel.embedded.EmbeddedChannel; +import java.util.Queue; + import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.netconf.api.NetconfMessage; +import org.opendaylight.controller.netconf.util.handler.ChunkedFramingMechanismEncoder; import org.opendaylight.controller.netconf.util.handler.FramingMechanismHandlerFactory; -import org.opendaylight.controller.netconf.util.handler.NetconfMessageAggregator; -import org.opendaylight.controller.netconf.util.handler.NetconfMessageChunkDecoder; +import org.opendaylight.controller.netconf.util.handler.NetconfChunkAggregator; +import org.opendaylight.controller.netconf.util.handler.NetconfEOMAggregator; +import org.opendaylight.controller.netconf.util.handler.NetconfMessageToXMLEncoder; +import org.opendaylight.controller.netconf.util.handler.NetconfXMLToMessageDecoder; import org.opendaylight.controller.netconf.util.messages.FramingMechanism; import org.opendaylight.controller.netconf.util.messages.NetconfMessageConstants; -import org.opendaylight.controller.netconf.util.messages.NetconfMessageFactory; import org.opendaylight.controller.netconf.util.messages.NetconfMessageHeader; import org.opendaylight.controller.netconf.util.test.XmlFileLoader; -import org.opendaylight.protocol.framework.ProtocolMessageDecoder; -import org.opendaylight.protocol.framework.ProtocolMessageEncoder; public class MessageParserTest { private NetconfMessage msg; - private NetconfMessageFactory msgFactory = new NetconfMessageFactory(); @Before public void setUp() throws Exception { @@ -47,36 +46,39 @@ public class MessageParserTest { public void testChunkedFramingMechanismOnPipeline() throws Exception { EmbeddedChannel testChunkChannel = new EmbeddedChannel( FramingMechanismHandlerFactory.createHandler(FramingMechanism.CHUNK), - new ProtocolMessageEncoder(msgFactory), + new NetconfMessageToXMLEncoder(), - new NetconfMessageAggregator(FramingMechanism.CHUNK), new NetconfMessageChunkDecoder(), - new ProtocolMessageDecoder(msgFactory)); + new NetconfChunkAggregator(), + new NetconfXMLToMessageDecoder()); testChunkChannel.writeOutbound(this.msg); Queue messages = testChunkChannel.outboundMessages(); assertFalse(messages.isEmpty()); - int msgLength = this.msgFactory.put(this.msg).length; - int chunkCount = msgLength / NetconfMessageConstants.MAX_CHUNK_SIZE; - if ((msgLength % NetconfMessageConstants.MAX_CHUNK_SIZE) != 0) { + final NetconfMessageToXMLEncoder enc = new NetconfMessageToXMLEncoder(); + final ByteBuf out = Unpooled.buffer(); + enc.encode(null, msg, out); + int msgLength = out.readableBytes(); + + int chunkCount = msgLength / ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE; + if ((msgLength % ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE) != 0) { chunkCount++; } for (int i = 1; i <= chunkCount; i++) { ByteBuf recievedOutbound = (ByteBuf) messages.poll(); - int exptHeaderLength = NetconfMessageConstants.MAX_CHUNK_SIZE; + int exptHeaderLength = ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE; if (i == chunkCount) { - exptHeaderLength = msgLength - (NetconfMessageConstants.MAX_CHUNK_SIZE * (i - 1)); - byte[] eom = new byte[NetconfMessageConstants.endOfChunk.length]; - recievedOutbound.getBytes(recievedOutbound.readableBytes() - NetconfMessageConstants.endOfChunk.length, + exptHeaderLength = msgLength - (ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE * (i - 1)); + byte[] eom = new byte[NetconfMessageConstants.END_OF_CHUNK.length]; + recievedOutbound.getBytes(recievedOutbound.readableBytes() - NetconfMessageConstants.END_OF_CHUNK.length, eom); - assertArrayEquals(NetconfMessageConstants.endOfChunk, eom); + assertArrayEquals(NetconfMessageConstants.END_OF_CHUNK, eom); } byte[] header = new byte[String.valueOf(exptHeaderLength).length() + NetconfMessageConstants.MIN_HEADER_LENGTH - 1]; recievedOutbound.getBytes(0, header); - NetconfMessageHeader messageHeader = new NetconfMessageHeader(); - messageHeader.fromBytes(header); + NetconfMessageHeader messageHeader = NetconfMessageHeader.fromBytes(header); assertEquals(exptHeaderLength, messageHeader.getLength()); testChunkChannel.writeInbound(recievedOutbound); @@ -92,15 +94,14 @@ public class MessageParserTest { public void testEOMFramingMechanismOnPipeline() throws Exception { EmbeddedChannel testChunkChannel = new EmbeddedChannel( FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM), - new ProtocolMessageEncoder(msgFactory), new NetconfMessageAggregator( - FramingMechanism.EOM), new ProtocolMessageDecoder(msgFactory)); + new NetconfMessageToXMLEncoder(), new NetconfEOMAggregator(), new NetconfXMLToMessageDecoder()); testChunkChannel.writeOutbound(this.msg); ByteBuf recievedOutbound = (ByteBuf) testChunkChannel.readOutbound(); - byte[] eom = new byte[NetconfMessageConstants.endOfMessage.length]; - recievedOutbound.getBytes(recievedOutbound.readableBytes() - NetconfMessageConstants.endOfMessage.length, eom); - assertArrayEquals(NetconfMessageConstants.endOfMessage, eom); + byte[] eom = new byte[NetconfMessageConstants.END_OF_MESSAGE.length]; + recievedOutbound.getBytes(recievedOutbound.readableBytes() - NetconfMessageConstants.END_OF_MESSAGE.length, eom); + assertArrayEquals(NetconfMessageConstants.END_OF_MESSAGE, eom); testChunkChannel.writeInbound(recievedOutbound); NetconfMessage receivedMessage = (NetconfMessage) testChunkChannel.readInbound();