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;
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 {
@Before
public void setUp() throws Exception {
- this.msg = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
+ msg = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig.xml");
}
@Test
new NetconfChunkAggregator(),
new NetconfXMLToMessageDecoder());
- testChunkChannel.writeOutbound(this.msg);
+ testChunkChannel.writeOutbound(msg);
Queue<Object> messages = testChunkChannel.outboundMessages();
assertFalse(messages.isEmpty());
chunkCount++;
}
- byte[] endOfChunkBytes = NetconfMessageConstants.END_OF_CHUNK.getBytes(StandardCharsets.UTF_8);
+ 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;
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));
NetconfMessage receivedMessage = testChunkChannel.readInbound();
assertNotNull(receivedMessage);
- assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
+ XMLUnit.setIgnoreWhitespace(true);
+ assertXMLEqual(msg.getDocument(), receivedMessage.getDocument());
}
@Test
FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM),
new NetconfMessageToXMLEncoder(), new NetconfEOMAggregator(), new NetconfXMLToMessageDecoder());
- testChunkChannel.writeOutbound(this.msg);
+ testChunkChannel.writeOutbound(msg);
ByteBuf recievedOutbound = testChunkChannel.readOutbound();
- byte[] endOfMsgBytes = NetconfMessageConstants.END_OF_MESSAGE.getBytes(StandardCharsets.UTF_8);
+ 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 = testChunkChannel.readInbound();
assertNotNull(receivedMessage);
- assertXMLEqual(this.msg.getDocument(), receivedMessage.getDocument());
+ XMLUnit.setIgnoreWhitespace(true);
+ assertXMLEqual(msg.getDocument(), receivedMessage.getDocument());
}
- private static long getHeaderLength(byte[] bytes) {
+ 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());