X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=netconf%2Fnetconf-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fimpl%2FMessageParserTest.java;h=88f4f1133726a3e8877fab7ccc3be161a5048b81;hb=38e1f73f062455df1c833d75128919a4473a71d2;hp=562d4a4ba993b4d307ca366e9e261a8f86f256a7;hpb=f0ad1f3333cad2f943635f94182a632d291f765d;p=netconf.git diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java index 562d4a4ba9..88f4f11337 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/MessageParserTest.java @@ -15,12 +15,13 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import com.google.common.base.Charsets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.embedded.EmbeddedChannel; import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; import java.util.Queue; +import org.custommonkey.xmlunit.XMLUnit; import org.junit.Before; import org.junit.Test; import org.opendaylight.netconf.api.NetconfMessage; @@ -31,7 +32,6 @@ import org.opendaylight.netconf.nettyutil.handler.NetconfEOMAggregator; import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToXMLEncoder; import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder; import org.opendaylight.netconf.util.messages.FramingMechanism; -import org.opendaylight.netconf.util.messages.NetconfMessageConstants; import org.opendaylight.netconf.util.test.XmlFileLoader; public class MessageParserTest { @@ -40,7 +40,7 @@ public class MessageParserTest { @Before public void setUp() throws Exception { - this.msg = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml"); + msg = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml"); } @Test @@ -52,7 +52,7 @@ public class MessageParserTest { new NetconfChunkAggregator(), new NetconfXMLToMessageDecoder()); - testChunkChannel.writeOutbound(this.msg); + testChunkChannel.writeOutbound(msg); Queue messages = testChunkChannel.outboundMessages(); assertFalse(messages.isEmpty()); @@ -62,22 +62,22 @@ public class MessageParserTest { int msgLength = out.readableBytes(); int chunkCount = msgLength / ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE; - if ((msgLength % ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE) != 0) { + if (msgLength % ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE != 0) { chunkCount++; } + + byte[] endOfChunkBytes = FramingMechanism.CHUNK_END_STR.getBytes(StandardCharsets.US_ASCII); for (int i = 1; i <= chunkCount; i++) { ByteBuf recievedOutbound = (ByteBuf) messages.poll(); int exptHeaderLength = ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE; if (i == chunkCount) { - 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.END_OF_CHUNK, eom); + exptHeaderLength = msgLength - ChunkedFramingMechanismEncoder.DEFAULT_CHUNK_SIZE * (i - 1); + byte[] eom = new byte[endOfChunkBytes.length]; + recievedOutbound.getBytes(recievedOutbound.readableBytes() - endOfChunkBytes.length, eom); + assertArrayEquals(endOfChunkBytes, eom); } - byte[] header = new byte[String.valueOf(exptHeaderLength).length() - + NetconfMessageConstants.MIN_HEADER_LENGTH - 1]; + byte[] header = new byte[String.valueOf(exptHeaderLength).length() + 3]; recievedOutbound.getBytes(0, header); assertEquals(exptHeaderLength, getHeaderLength(header)); @@ -85,9 +85,10 @@ public class MessageParserTest { } assertTrue(messages.isEmpty()); - NetconfMessage receivedMessage = (NetconfMessage) testChunkChannel.readInbound(); + NetconfMessage receivedMessage = testChunkChannel.readInbound(); assertNotNull(receivedMessage); - assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument()); + XMLUnit.setIgnoreWhitespace(true); + assertXMLEqual(msg.getDocument(), receivedMessage.getDocument()); } @Test @@ -96,22 +97,24 @@ public class MessageParserTest { FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM), new NetconfMessageToXMLEncoder(), new NetconfEOMAggregator(), new NetconfXMLToMessageDecoder()); - testChunkChannel.writeOutbound(this.msg); - ByteBuf recievedOutbound = (ByteBuf) testChunkChannel.readOutbound(); + testChunkChannel.writeOutbound(msg); + ByteBuf recievedOutbound = testChunkChannel.readOutbound(); - 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); + byte[] endOfMsgBytes = FramingMechanism.EOM_STR.getBytes(StandardCharsets.US_ASCII); + byte[] eom = new byte[endOfMsgBytes.length]; + recievedOutbound.getBytes(recievedOutbound.readableBytes() - endOfMsgBytes.length, eom); + assertArrayEquals(endOfMsgBytes, eom); testChunkChannel.writeInbound(recievedOutbound); - NetconfMessage receivedMessage = (NetconfMessage) testChunkChannel.readInbound(); + NetconfMessage receivedMessage = testChunkChannel.readInbound(); assertNotNull(receivedMessage); - assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument()); + XMLUnit.setIgnoreWhitespace(true); + assertXMLEqual(msg.getDocument(), receivedMessage.getDocument()); } - private static long getHeaderLength(byte[] bytes) { - byte[] HEADER_START = new byte[] { (byte) 0x0a, (byte) 0x23 }; - return Long.parseLong(Charsets.US_ASCII.decode( - ByteBuffer.wrap(bytes, HEADER_START.length, bytes.length - HEADER_START.length - 1)).toString()); + private static long getHeaderLength(final byte[] bytes) { + byte[] headerStart = new byte[]{(byte) 0x0a, (byte) 0x23}; + return Long.parseLong(StandardCharsets.US_ASCII.decode( + ByteBuffer.wrap(bytes, headerStart.length, bytes.length - headerStart.length - 1)).toString()); } }