import org.junit.Assert; import org.junit.Test; import seng302.Networking.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * Created by hba56 on 21/04/17. */ public class BinaryMessageDecoderTest { @Test public void decodeTest(){ try{ StringBuilder xmlString; BufferedReader br = new BufferedReader(new InputStreamReader( this.getClass().getResourceAsStream(("raceXML/Regatta.xml")))); String line; xmlString = new StringBuilder(); while((line=br.readLine())!= null){ xmlString.append(line.trim()); } long time = System.currentTimeMillis(); XMLMessageEncoder testEncoder = new XMLMessageEncoder((byte)1, (short)1, time, (byte)7, (short)1, (short)xmlString.length(), xmlString.toString()); byte[] encodedMessage = testEncoder.encode(); BinaryMesageEncoder testMessage = new BinaryMesageEncoder(MessageType.XMLMESSAGE, time, 1, (short)encodedMessage.length, encodedMessage); BinaryMessageDecoder testDecoder = new BinaryMessageDecoder(testMessage.getFullMessage()); testDecoder.decode(); //message length Assert.assertEquals((short) encodedMessage.length,testDecoder.getMessageLength()); //time stamp Assert.assertEquals(time,testDecoder.getTimeStamp()); //source ID Assert.assertEquals((short) 1, testDecoder.getSourceID()); //message type Assert.assertEquals(26, testDecoder.getMessageType()); XMLMessageDecoder decoderXML = new XMLMessageDecoder(testDecoder.getMessage()); decoderXML.decode(); //tests from XMLMessageDecoderTest to make sure the file is still good Assert.assertEquals((byte)1, decoderXML.getMessageVersionNumber()); Assert.assertEquals((short)1, decoderXML.getAckNumber()); Assert.assertEquals(time, decoderXML.getTimeStamp()); Assert.assertEquals((byte)7, decoderXML.getXmlMsgSubType()); Assert.assertEquals((short)1, decoderXML.getSequenceNumber()); Assert.assertEquals((short)xmlString.length(), decoderXML.getXmlMsgLength()); Assert.assertEquals(xmlString.toString(), decoderXML.getXmlMessage()); }catch (IOException e){ System.out.println(e); } } }