You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.5 KiB
61 lines
2.5 KiB
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
import seng302.Networking.*;
|
|
import seng302.Networking.MessageDecoders.XMLMessageDecoder;
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|