From ae59ed3de3347cc9e0e9d32400aeeb97941902a9 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 30 Jun 2014 17:00:54 +0200 Subject: [PATCH] filter mark positions by start-of-tracking and end-of-tracking times; started a test case for this --- .../test/MarkPositionTimeFilterTest.java | 38 +++++++++++++++++++ .../impl/MarkPositionReceiver.java | 3 -- .../tracking/impl/DynamicTrackedRaceImpl.java | 5 ++- .../SailingServer (No Proxy).launch | 2 +- 4 files changed, 43 insertions(+), 5 deletions(-) create mode 100755 java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPositionTimeFilterTest.java diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPositionTimeFilterTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPositionTimeFilterTest.java new file mode 100755 index 00000000000..38ef593b3ae --- /dev/null +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPositionTimeFilterTest.java @@ -0,0 +1,38 @@ +package com.sap.sailing.domain.test; + +import static org.junit.Assert.assertSame; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.same; +import static org.mockito.Mockito.doCallRealMethod; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import org.junit.Before; +import org.junit.Test; + +import com.sap.sailing.domain.base.Mark; +import com.sap.sailing.domain.base.impl.MarkImpl; +import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.GPSFixMoving; +import com.sap.sailing.domain.tracking.impl.DynamicGPSFixTrackImpl; +import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; + +public class MarkPositionTimeFilterTest { + private DynamicTrackedRace trackedRace; + private MarkImpl m; + private DynamicGPSFixTrackImpl track; + + @Before + public void setUp() { + trackedRace = mock(DynamicTrackedRaceImpl.class); + m = new MarkImpl("Test Mark"); + track = new DynamicGPSFixTrackImpl(m, /* millisecondsOverWhichToAverage */ 5000); + when(trackedRace.getOrCreateTrack(m)).thenReturn(track); + doCallRealMethod().when(trackedRace).recordFix(same(m), (GPSFixMoving) anyObject()); + } + + @Test + public void generalSetupTest() { + assertSame(track, trackedRace.getOrCreateTrack(m)); + } +} diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java index 7928ee974fb..df53807336c 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java @@ -43,9 +43,6 @@ public class MarkPositionReceiver extends AbstractReceiverWithQueue { @Override public void recordFix(Mark mark, GPSFix fix) { - getOrCreateTrack(mark).addGPSFix(fix); + if ((getStartOfTracking() == null || getStartOfTracking().compareTo(fix.getTimePoint()) <= 0) && + (getEndOfTracking() == null || getEndOfTracking().compareTo(fix.getTimePoint()) >= 0)) { + getOrCreateTrack(mark).addGPSFix(fix); + } } @Override diff --git a/java/com.sap.sailing.server/SailingServer (No Proxy).launch b/java/com.sap.sailing.server/SailingServer (No Proxy).launch index 3cdc8fd0102..c132dcbaaf8 100755 --- a/java/com.sap.sailing.server/SailingServer (No Proxy).launch +++ b/java/com.sap.sailing.server/SailingServer (No Proxy).launch @@ -16,7 +16,7 @@ - +