mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-11 23:00:59 +00:00
added hasRaceExecutionOrdersAttached() to TrackedRaceImpl
This commit is contained in:
1 parent
d01cc74c75
commit
50e1dfd5ba
2 files changed
+74
-43
No files matched your search
+70
-43
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.domain.test;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
@@ -14,7 +14,6 @@ import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
@@ -26,12 +25,15 @@ import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
@@ -40,62 +42,87 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
*
|
||||
*/
|
||||
public class RaceExecutionOrderProvdiderAttachDetachTest extends TrackBasedTest {
|
||||
|
||||
RaceExecutionOrderProvider raceExecutionOrderProvider;
|
||||
FlexibleLeaderboard flexibleLeaderboard;
|
||||
|
||||
RaceColumnInSeries raceColumnInSeries;
|
||||
FlexibleRaceColumn raceColumnFlexibleLeaderboard;
|
||||
Fleet fleet;
|
||||
|
||||
TrackedRaceImpl trackedRace;
|
||||
Regatta regatta;
|
||||
Series series;
|
||||
RaceColumnInSeries raceColumnInSeries;
|
||||
RaceColumn raceColumn;
|
||||
Fleet fleet;
|
||||
FlexibleLeaderboard flexibleLeaderboard;
|
||||
DynamicTrackedRace dynamicTackedRace;
|
||||
RaceExecutionOrderProvider raceExecutionOrderProvider;
|
||||
private final String REGATTA = "TestRegatta";
|
||||
private final String RACE = "TestRace";
|
||||
private final String FLEET = "TestFleet";
|
||||
private final String BOATCLASS = "49er";
|
||||
private final String RACECOLUMN_SERIES = "SeriesRaceColumn";
|
||||
private final String RACECOLUMN_FLEXIBLELEADERBOARD = "FlexibleLeadrboarRaceColumn";
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
final List<Competitor> emptyCompetitorList = Collections.emptyList();
|
||||
TimePoint now = MillisecondsTimePoint.now();
|
||||
dynamicTackedRace = createTestTrackedRace("TestRegatta", "TestRace", "TestBoatClass", emptyCompetitorList, now);
|
||||
raceExecutionOrderProvider = new AbstractRaceExecutionOrderProvider() {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected Map<Fleet, Iterable<? extends RaceColumn>> getRaceColumnsOfSeries() {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
TrackedRegattaRegistry trackedRegattaRegistry = mock(TrackedRegattaRegistry.class);
|
||||
fleet = new FleetImpl("TestFleet");
|
||||
Series series = createSeries(trackedRegattaRegistry, fleet);
|
||||
Set<Series> seriesSet = new HashSet<>();
|
||||
seriesSet.add(series);
|
||||
BoatClass boatClass = new BoatClassImpl("TestClass", true);
|
||||
String raceColumnName = "TestRace";
|
||||
raceColumnInSeries = series.addRaceColumn(raceColumnName, trackedRegattaRegistry);
|
||||
ScoringScheme scoringScheme = new LowPoint();
|
||||
regatta = new RegattaImpl(RegattaImpl.getDefaultName("TestRegatta", boatClass.getName()), boatClass,
|
||||
/* startDate */null, /* endDate */null, seriesSet, false, scoringScheme, UUID.randomUUID(),
|
||||
mock(CourseArea.class), OneDesignRankingMetric::new);
|
||||
setUpForAllTestCases();
|
||||
setUpForFlexibleLeaderboardRaceColumnsTests();
|
||||
setUpRaceColumnInSeriesTest();
|
||||
}
|
||||
|
||||
// @Test
|
||||
// public void testRaceExecutionOrderProviderAttachWhenSettingTrackedRaceToRaceCollumn() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Test
|
||||
// public void testRaceExecutionOrderProviderDetachWhenReleasingTrackedRaceFromRaceCollumn() {
|
||||
//
|
||||
// }
|
||||
@Test
|
||||
public void testRaceExecutionOrderProviderAttachWhenSettingTrackedRaceToRaceCollumn() {
|
||||
flexibleLeaderboard.addRace(trackedRace, RACECOLUMN_FLEXIBLELEADERBOARD, false);
|
||||
System.out.println(""+trackedRace.hasRaceExecutionOrderProvidersAttached());
|
||||
assertTrue(trackedRace.hasRaceExecutionOrderProvidersAttached());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRaceExecutionOrderProviderDetachWhenReleasingTrackedRaceFromRaceCollumn() {
|
||||
flexibleLeaderboard.removeRaceColumn(RACECOLUMN_FLEXIBLELEADERBOARD);
|
||||
assertFalse(trackedRace.hasRaceExecutionOrderProvidersAttached());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRaceExecutionOrderProviderAttachWhenSettingTrackedRaceToRaceCollumnInSeries() {
|
||||
raceColumnInSeries.setTrackedRace(fleet, dynamicTackedRace);
|
||||
raceColumnInSeries.setTrackedRace(fleet, trackedRace);
|
||||
assertTrue(trackedRace.hasRaceExecutionOrderProvidersAttached());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRaceExecutionOrderProviderDetachWhenReleasingTrackedRaceFromRaceCollumnInSeries() {
|
||||
raceColumnInSeries.releaseTrackedRace(fleet);
|
||||
assertFalse(trackedRace.hasRaceExecutionOrderProvidersAttached());
|
||||
}
|
||||
|
||||
private void setUpForAllTestCases(){
|
||||
final List<Competitor> emptyCompetitorList = Collections.emptyList();
|
||||
TimePoint now = MillisecondsTimePoint.now();
|
||||
trackedRace = createTestTrackedRace(REGATTA, RACE, BOATCLASS, emptyCompetitorList, now);
|
||||
raceExecutionOrderProvider = new AbstractRaceExecutionOrderProvider() {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected Map<Fleet, Iterable<? extends RaceColumn>> getRaceColumnsOfSeries() {
|
||||
return Collections.<Fleet, Iterable<? extends RaceColumn>>emptyMap();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void setUpForFlexibleLeaderboardRaceColumnsTests(){
|
||||
flexibleLeaderboard = new FlexibleLeaderboardImpl("Kiel Week 2011 505s", new ThresholdBasedResultDiscardingRuleImpl(new int[] { 3, 6 }),
|
||||
new LowPoint(), null);
|
||||
}
|
||||
|
||||
private void setUpRaceColumnInSeriesTest(){
|
||||
fleet = new FleetImpl(FLEET);
|
||||
series = createSeries(null, fleet);
|
||||
Set<Series> seriesSet = new HashSet<>();
|
||||
seriesSet.add(series);
|
||||
BoatClass boatClass = new BoatClassImpl(BOATCLASS, true);
|
||||
String raceColumnName = RACECOLUMN_SERIES;
|
||||
raceColumnInSeries = series.addRaceColumn(raceColumnName, null);
|
||||
ScoringScheme scoringScheme = new LowPoint();
|
||||
regatta = new RegattaImpl(RegattaImpl.getDefaultName(REGATTA, boatClass.getName()), boatClass,
|
||||
/* startDate */null, /* endDate */null, seriesSet, false, scoringScheme, UUID.randomUUID(),
|
||||
null, OneDesignRankingMetric::new);
|
||||
}
|
||||
|
||||
private Series createSeries(TrackedRegattaRegistry trackedRegattaRegistry, Fleet fleet) {
|
||||
|
||||
+4
@@ -3105,6 +3105,10 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
|
||||
attachedRaceExecutionOrderProviders.remove(raceExecutionOrderProvider);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasRaceExecutionOrderProvidersAttached(){
|
||||
return !attachedRaceExecutionOrderProviders.isEmpty();
|
||||
}
|
||||
|
||||
private ReadonlyRaceState getRaceState(RaceLog raceLog) {
|
||||
ReadonlyRaceState result;
|
||||
|
||||
Reference in new issue
Block a user