Files
SENG302/racevisionGame/src/test/java/network/MessageDecoders/RaceStartStatusDecoderTest.java
T
fjc40 ce63f58429 Added RaceStartStatusEncoder.
Added RaceStartTypeEnum.
Refactored RaceStartStatusDecoder to implement the MessageDecoder interface.
Documented RaceStartStatus, and it actually exposes its properties now.
Updated RaceStartStatusDecoderTest.
issue #35 #36
#story[1095]
2017-08-06 19:36:21 +12:00

63 lines
2.1 KiB
Java

package network.MessageDecoders;
import network.MessageEncoders.RaceVisionByteEncoder;
import network.Messages.Enums.RaceStartTypeEnum;
import network.Messages.RaceStartStatus;
import org.junit.Assert;
import org.junit.Test;
/**
* Tests for the RaceStartStatus encoder and decoder.
*/
public class RaceStartStatusDecoderTest {
/**
* Tests if a RaceStartStatus message can be encoded and decoded correctly.
* @throws Exception Thrown when an error occurs.
*/
@Test
public void raceStartStatusEncodeDecodeTest() throws Exception {
long timestamp = System.currentTimeMillis();
long startTime = System.currentTimeMillis() + 10 * 1000;
RaceStartStatus raceStartStatus = new RaceStartStatus(
RaceStartStatus.currentMessageVersionNumber,
timestamp,
55,
startTime,
35,
RaceStartTypeEnum.SET_RACE_START
);
byte[] encodedRaceStartStatus = RaceVisionByteEncoder.encode(raceStartStatus);
RaceStartStatusDecoder testDecoder = new RaceStartStatusDecoder();
testDecoder.decode(encodedRaceStartStatus);
RaceStartStatus raceStartStatusDecoded = testDecoder.getMessage();
compareRaceStartStatusMessages(raceStartStatus, raceStartStatusDecoded);
}
/**
* Compares two RaceStartStatus messages to check that they are the same.
* @param original The original message.
* @param decoded The decoded message.
*/
public static void compareRaceStartStatusMessages(RaceStartStatus original, RaceStartStatus decoded) {
Assert.assertEquals(original.getMessageVersionNumber(), decoded.getMessageVersionNumber());
Assert.assertEquals(original.getTimestamp(), decoded.getTimestamp());
Assert.assertEquals(original.getAckNum(), decoded.getAckNum());
Assert.assertEquals(original.getRaceStartTime(), decoded.getRaceStartTime());
Assert.assertEquals(original.getRaceID(), decoded.getRaceID());
Assert.assertEquals(original.getNotificationType(), decoded.getNotificationType());
}
}