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.
77 lines
3.1 KiB
77 lines
3.1 KiB
package network.MessageDecoders;
|
|
|
|
import network.MessageEncoders.RaceVisionByteEncoder;
|
|
import network.Messages.BoatStatus;
|
|
import network.Messages.RaceStatus;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Created by hba56 on 23/04/17.
|
|
*/
|
|
public class RaceStatusDecoderTest {
|
|
@Test
|
|
public void getByteArrayTest(){
|
|
long time = System.currentTimeMillis();
|
|
|
|
//Create data to serialize.
|
|
int boat1SourceID = 5;
|
|
int boat2SourceID = 8;
|
|
byte boat1Status = 2;
|
|
byte boat2Status = 2;
|
|
byte boat1LegNumber = 5;
|
|
byte boat2LegNumber = 3;
|
|
byte boat1PenaltiesAwarded = 4;
|
|
byte boat2PenaltiesAwarded = 0;
|
|
byte boat1PenaltiesServed = 2;
|
|
byte boat2PenaltiesServed = 0;
|
|
long boat1TimeAtNextMark = time + (1000 * 3);
|
|
long boat2TimeAtNextMark = time + (1000 * 2);
|
|
long boat1TimeAtFinish = boat1TimeAtNextMark + (1000 * 15);
|
|
long boat2TimeAtFinish = boat2TimeAtNextMark + (1000 * 7);
|
|
|
|
BoatStatus boatStatus1 = new BoatStatus(boat1SourceID, boat1Status, boat1LegNumber, boat1PenaltiesAwarded, boat1PenaltiesServed, boat1TimeAtNextMark, boat1TimeAtFinish);
|
|
BoatStatus boatStatus2 = new BoatStatus(boat2SourceID, boat2Status, boat2LegNumber, boat2PenaltiesAwarded, boat2PenaltiesServed, boat2TimeAtNextMark, boat2TimeAtFinish);
|
|
|
|
int raceID = 585;
|
|
byte raceStatus = 3;
|
|
long raceStartTime = time - (1000 * 31);
|
|
int windDirection = 2341;
|
|
int windSpeed = 10201;
|
|
int raceType = 1;
|
|
List<BoatStatus> boatStatuses = new ArrayList<>(2);
|
|
boatStatuses.add(boatStatus1);
|
|
boatStatuses.add(boatStatus2);
|
|
|
|
RaceStatus raceStatusObject = new RaceStatus(time, raceID, raceStatus, raceStartTime, windDirection, windSpeed, raceType, boatStatuses);
|
|
|
|
|
|
byte[] encodedRaceStatus = RaceVisionByteEncoder.raceStatus(raceStatusObject);
|
|
|
|
RaceStatusDecoder decoderTest = new RaceStatusDecoder(encodedRaceStatus);
|
|
|
|
Assert.assertEquals(0b10, decoderTest.getVersionNum());
|
|
Assert.assertEquals(time, decoderTest.getTime());
|
|
Assert.assertEquals(raceID, decoderTest.getRace());
|
|
Assert.assertEquals(raceStatus, decoderTest.getRaceState());
|
|
Assert.assertEquals(raceStartTime, decoderTest.getStartTime());
|
|
Assert.assertEquals(windDirection, decoderTest.getRaceWindDir());
|
|
Assert.assertEquals(windSpeed, decoderTest.getRaceWindSpeed());
|
|
|
|
|
|
BoatStatus boat1 = decoderTest.getBoats().get(0);
|
|
|
|
Assert.assertEquals(boat1SourceID, boat1.getSourceID());
|
|
Assert.assertEquals(boat1Status, boat1.getBoatStatus());
|
|
Assert.assertEquals(boat1LegNumber, boat1.getLegNumber());
|
|
Assert.assertEquals(boat1PenaltiesAwarded, boat1.getNumPenaltiesAwarded());
|
|
Assert.assertEquals(boat1PenaltiesServed, boat1.getNumPenaltiesServed());
|
|
Assert.assertEquals(boat1TimeAtNextMark, boat1.getEstTimeAtNextMark());
|
|
Assert.assertEquals(boat1TimeAtFinish, boat1.getEstTimeAtFinish());
|
|
|
|
}
|
|
}
|