mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
bug2918: trying to establish a replicable race log for the test race TrackRaceReplicationTest
This commit is contained in:
1 parent
8d58ae9e1d
commit
889223d2d5
2 files changed
+31
-9
No files matched your search
+2
-1
@@ -521,7 +521,8 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> {
|
||||
*/
|
||||
@Override
|
||||
public void setWindSourcesToExclude(final Iterable<? extends WindSource> windSourcesToExclude) {
|
||||
final Set<WindSource> effectiveWindSourcesToExclude = new HashSet<>(getWindSourcesToExclude());
|
||||
final Set<WindSource> effectiveWindSourcesToExclude = new HashSet<>();
|
||||
Util.addAll(windSourcesToExclude, effectiveWindSourcesToExclude);
|
||||
if (!raceIsKnownToStartUpwind) {
|
||||
effectiveWindSourcesToExclude.add(new WindSourceImpl(WindSourceType.COURSE_BASED));
|
||||
}
|
||||
|
||||
+29
-8
@@ -6,24 +6,32 @@ import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNotSame;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.Collections;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.Optional;
|
||||
import java.util.TimeZone;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogExcludeWindSourcesEventImpl;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
import com.sap.sailing.domain.common.impl.WindSourceImpl;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
@@ -33,18 +41,20 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.RaceHandle;
|
||||
import com.sap.sailing.domain.tracking.RaceTracker;
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingHandler.DefaultRaceTrackingHandler;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.server.interfaces.RacingEventService;
|
||||
import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.ConnectTrackedRaceToLeaderboardColumn;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateTrackedRace;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.replication.OperationExecutionListener;
|
||||
import com.sap.sse.replication.OperationWithResult;
|
||||
import com.sap.sse.shared.util.Wait;
|
||||
|
||||
public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
|
||||
private static final Logger logger = Logger.getLogger(TrackRaceReplicationTest.class.getName());
|
||||
@@ -199,16 +209,27 @@ public class TrackRaceReplicationTest extends AbstractServerReplicationTest {
|
||||
try {
|
||||
logger.info("Running testWindSourcesToExcludeReplication()");
|
||||
startTracking();
|
||||
final FlexibleLeaderboard lb = master.addFlexibleLeaderboard("LB", "LB Display Name", new int[0], new LowPoint(), Collections.emptySet());
|
||||
final FlexibleRaceColumn r1 = (FlexibleRaceColumn) master.addColumnToLeaderboard("R1", lb.getName(), /* medal race */ false);
|
||||
Thread.sleep(1000);
|
||||
TrackedRace replicaTrackedRace = replica.getTrackedRace(raceIdentifier);
|
||||
final TrackedRace replicaTrackedRace = replica.getTrackedRace(raceIdentifier);
|
||||
r1.setTrackedRace(r1.getFleets().iterator().next(), replicaTrackedRace);
|
||||
assertTrue(Util.isEmpty(masterTrackedRace.getWindSourcesToExclude()));
|
||||
assertTrue(Util.isEmpty(replicaTrackedRace.getWindSourcesToExclude()));
|
||||
masterTrackedRace.setWindSourcesToExclude(Collections.singleton(new WindSourceImpl(WindSourceType.WEB)));
|
||||
assertEquals(1, Util.size(masterTrackedRace.getWindSourcesToExclude()));
|
||||
assertEquals(WindSourceType.WEB, masterTrackedRace.getWindSourcesToExclude().iterator().next().getType());
|
||||
Thread.sleep(1000);
|
||||
assertEquals(1, Util.size(replicaTrackedRace.getWindSourcesToExclude()));
|
||||
assertEquals(WindSourceType.WEB, replicaTrackedRace.getWindSourcesToExclude().iterator().next().getType());
|
||||
if (Wait.wait(()->masterTrackedRace.getAttachedRaceLogs().iterator().hasNext(),
|
||||
Optional.of(Duration.ONE_MINUTE), Duration.ONE_SECOND,
|
||||
Level.INFO, "Waiting for race log(s) attached")) {
|
||||
final RaceLog defaultRaceLog = masterTrackedRace.getAttachedRaceLogs().iterator().next();
|
||||
defaultRaceLog.add(new RaceLogExcludeWindSourcesEventImpl(TimePoint.now(), new LogEventAuthorImpl("Me", 0), 0,
|
||||
Collections.singleton(new WindSourceImpl(WindSourceType.WEB))));
|
||||
assertEquals(1, Util.size(masterTrackedRace.getWindSourcesToExclude()));
|
||||
assertEquals(WindSourceType.WEB, masterTrackedRace.getWindSourcesToExclude().iterator().next().getType());
|
||||
Thread.sleep(1000);
|
||||
assertEquals(1, Util.size(replicaTrackedRace.getWindSourcesToExclude()));
|
||||
assertEquals(WindSourceType.WEB, replicaTrackedRace.getWindSourcesToExclude().iterator().next().getType());
|
||||
} else {
|
||||
fail("Didn't find race log for "+raceIdentifier);
|
||||
}
|
||||
} finally {
|
||||
logger.info("Done running testWindSourcesToExcludeReplication()");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user