From d870388e65dc7aa29a67a4bc9d9be7bc397598b8 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 4 Nov 2011 16:15:42 +0100 Subject: [PATCH] added test for delta clock at mark --- .../test/SwissTimingSailMasterLiveTest.java | 13 ++++++++++++- .../swisstimingadapter/impl/CompetitorImpl.java | 5 +++++ .../impl/SailMasterConnectorImpl.java | 6 ++++-- .../impl/SailMasterTransceiver.java | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java index b9e5efa1db5..39c5be14297 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java @@ -10,6 +10,7 @@ import java.net.UnknownHostException; import java.text.ParseException; import java.util.Collection; import java.util.List; +import java.util.Map; import org.junit.Before; import org.junit.Ignore; @@ -32,7 +33,7 @@ import com.sap.sailing.util.Util; import com.sap.sailing.util.Util.Pair; import com.sap.sailing.util.Util.Triple; -@Ignore("This test doesn't work as long as the server doesn't play an actual race") +//@Ignore("This test doesn't work as long as the server doesn't play an actual race") public class SwissTimingSailMasterLiveTest implements SailMasterListener { private int rpdCounter; private SailMasterConnector connector; @@ -107,6 +108,16 @@ public class SwissTimingSailMasterLiveTest implements SailMasterListener { assertNotNull(currentBoatSpeed); } } + + @Test + public void testGetDeltaClockAtMark() throws UnknownHostException, IOException, InterruptedException, NumberFormatException, ParseException { + Iterable races = connector.getRaces(); + Race race = races.iterator().next(); + Map> deltaClockAtMark = connector.getDeltaClockAtMark(race.getRaceID()); + for (int i=0; i<7; i++) { + assertTrue(deltaClockAtMark.keySet().contains(i)); + } + } @Override public void receivedRacePositionData(String raceID, RaceStatus status, TimePoint timePoint, TimePoint startTime, diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/CompetitorImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/CompetitorImpl.java index 27ff555f8fd..6ea8c712711 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/CompetitorImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/CompetitorImpl.java @@ -28,5 +28,10 @@ public class CompetitorImpl implements Competitor { public String getName() { return name; } + + @Override + public String toString() { + return name+"/"+boatID; + } } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java index b6a09790cfd..c4a6572e274 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java @@ -63,7 +63,7 @@ public class SailMasterConnectorImpl extends SailMasterTransceiver implements Sa private final String host; private final int port; private Socket socket; - private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss"); + private final DateFormat dateFormat; private final Set listeners; private final Thread receiverThread; private boolean stopped; @@ -72,6 +72,7 @@ public class SailMasterConnectorImpl extends SailMasterTransceiver implements Sa public SailMasterConnectorImpl(String host, int port) { super(); + dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss"); this.host = host; this.port = port; this.listeners = new HashSet(); @@ -387,7 +388,8 @@ public class SailMasterConnectorImpl extends SailMasterTransceiver implements Sa for (int i=0; i( - new MillisecondsTimePoint(dateFormat.parse(prefixTimeWithISOToday(markTimeDetail[1]))), markTimeDetail[2])); + markTimeDetail.length <= 1 ? null : new MillisecondsTimePoint(dateFormat.parse(prefixTimeWithISOToday(markTimeDetail[1]))), + markTimeDetail.length <= 2 ? null : markTimeDetail[2])); } return result; } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterTransceiver.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterTransceiver.java index 21c051bf056..1965710231d 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterTransceiver.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterTransceiver.java @@ -20,7 +20,7 @@ public class SailMasterTransceiver { * Sends the string message to the output stream os, using the cp1252 character set * for encoding and framing the message with the STX and ETX bytes. */ - public void sendMessage(String message, OutputStream os) throws IOException { + public synchronized void sendMessage(String message, OutputStream os) throws IOException { os.write(STX); os.write(message.getBytes(Charset.forName("cp1252"))); os.write(ETX);