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.
89 lines
3.0 KiB
89 lines
3.0 KiB
package network.MessageDecoders;
|
|
|
|
import network.MessageEncoders.BoatStatusEncoder;
|
|
import network.MessageEncoders.RaceVisionByteEncoder;
|
|
import network.Messages.BoatStatus;
|
|
import network.Messages.Enums.BoatStatusEnum;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Test for the BoatStatus encoder and decoder
|
|
*/
|
|
public class BoatStatusDecoderTest {
|
|
|
|
|
|
/**
|
|
* Creates a BoatStatus message, encodes it, decodes it, and checks that the result matches the starting message.
|
|
* @throws Exception if test fails.
|
|
*/
|
|
@Test
|
|
public void boatStatusEncodeDecodeTest() throws Exception {
|
|
|
|
long time = System.currentTimeMillis();
|
|
|
|
//Create data to serialize.
|
|
int boatSourceID = 5;
|
|
BoatStatusEnum boatStatusEnum = BoatStatusEnum.RACING;
|
|
byte boatLegNumber = 5;
|
|
byte boatPenaltiesAwarded = 4;
|
|
byte boatPenaltiesServed = 2;
|
|
long boatTimeAtNextMark = time + (1000 * 3);
|
|
long boatTimeAtFinish = boatTimeAtNextMark + (1000 * 15);
|
|
|
|
BoatStatus boatStatus = new BoatStatus(
|
|
boatSourceID,
|
|
boatStatusEnum,
|
|
boatLegNumber,
|
|
boatPenaltiesAwarded,
|
|
boatPenaltiesServed,
|
|
boatTimeAtNextMark,
|
|
boatTimeAtFinish );
|
|
|
|
|
|
BoatStatus boatStatusDecoded = encodeDecodeBoatStatus(boatStatus);
|
|
|
|
compareBoatStatusMessages(boatStatus, boatStatusDecoded);
|
|
|
|
}
|
|
|
|
/**
|
|
* Encodes and decodes a BoatStatus, and returns it.
|
|
* @param boatStatus The BoatStatus to encode and decode.
|
|
* @return The decoded BoatStatus.
|
|
*/
|
|
private static BoatStatus encodeDecodeBoatStatus(BoatStatus boatStatus) {
|
|
|
|
BoatStatusEncoder boatStatusEncoder = new BoatStatusEncoder();
|
|
byte[] boatStatusEncoded = boatStatusEncoder.encode(boatStatus);
|
|
|
|
BoatStatusDecoder boatStatusDecoder = new BoatStatusDecoder();
|
|
BoatStatus boatStatusDecoded = boatStatusDecoder.decode(boatStatusEncoded);
|
|
|
|
return boatStatusDecoded;
|
|
}
|
|
|
|
|
|
/**
|
|
* Compares two BoatStatus messages to check that they are equal.
|
|
* @param original The original BoatStatus message.
|
|
* @param decoded The decoded BoatStatus message.
|
|
*/
|
|
public static void compareBoatStatusMessages(BoatStatus original, BoatStatus decoded) {
|
|
|
|
Assert.assertEquals(original.getSourceID(), decoded.getSourceID());
|
|
Assert.assertEquals(original.getBoatStatus(), decoded.getBoatStatus());
|
|
Assert.assertEquals(original.getLegNumber(), decoded.getLegNumber());
|
|
Assert.assertEquals(original.getNumPenaltiesAwarded(), decoded.getNumPenaltiesAwarded());
|
|
Assert.assertEquals(original.getNumPenaltiesServed(), decoded.getNumPenaltiesServed());
|
|
Assert.assertEquals(original.getEstTimeAtNextMark(), decoded.getEstTimeAtNextMark());
|
|
Assert.assertEquals(original.getEstTimeAtFinish(), decoded.getEstTimeAtFinish());
|
|
|
|
}
|
|
|
|
}
|