mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-26 07:26:41 +00:00
fixed two more tests
This commit is contained in:
+7
-7
@@ -79,7 +79,7 @@ public class TestStoringAndRetrievingLeaderboards extends AbstractMongoDBTest {
|
||||
final int[] discardIndexResultsStartingWithHowManyRaces = new int[] { 5, 8 };
|
||||
FlexibleLeaderboardImpl leaderboard = new FlexibleLeaderboardImpl(leaderboardName, new ThresholdBasedResultDiscardingRuleImpl(discardIndexResultsStartingWithHowManyRaces),
|
||||
new LowPoint(), null);
|
||||
CompetitorWithBoat wolfgang = createCompetitorAndBoat();
|
||||
CompetitorWithBoat wolfgangWithBoat = createCompetitorAndBoat();
|
||||
Competitor hasso = new CompetitorImpl(234, "Hasso Plattner", "KYC", Color.RED, null, null,
|
||||
new TeamImpl("STG", Collections.singleton(
|
||||
new PersonImpl("Hasso Plattner", new NationalityImpl("GER"),
|
||||
@@ -88,18 +88,18 @@ public class TestStoringAndRetrievingLeaderboards extends AbstractMongoDBTest {
|
||||
Boat hassosBoat = new BoatImpl("123", "Dr. Hasso Plattner's boat", new BoatClassImpl("505", /* typicallyStartsUpwind */ true), null);
|
||||
CompetitorWithBoat hassoWithBoat = new CompetitorWithBoatImpl(hasso, hassosBoat);
|
||||
final String raceColumnName1 = "My First Race 1";
|
||||
MockedTrackedRaceWithFixedRankAndManyCompetitors raceWithTwoCompetitors = new MockedTrackedRaceWithFixedRankAndManyCompetitors(wolfgang, /* rank */ 1, /* started */ true);
|
||||
MockedTrackedRaceWithFixedRankAndManyCompetitors raceWithTwoCompetitors = new MockedTrackedRaceWithFixedRankAndManyCompetitors(wolfgangWithBoat, /* rank */ 1, /* started */ true);
|
||||
raceWithTwoCompetitors.addCompetitorAndBoat(hassoWithBoat);
|
||||
leaderboard.addRace(raceWithTwoCompetitors, raceColumnName1, /* medalRace */ false);
|
||||
leaderboard.setSuppressed(wolfgang.getCompetitor(), true);
|
||||
assertTrue(Util.contains(leaderboard.getSuppressedCompetitors(), wolfgang));
|
||||
leaderboard.setSuppressed(wolfgangWithBoat.getCompetitor(), true);
|
||||
assertTrue(Util.contains(leaderboard.getSuppressedCompetitors(), wolfgangWithBoat.getCompetitor()));
|
||||
assertFalse(Util.contains(leaderboard.getSuppressedCompetitors(), hasso));
|
||||
new MongoObjectFactoryImpl(db).storeLeaderboard(leaderboard);
|
||||
Leaderboard loadedLeaderboard = new DomainObjectFactoryImpl(db, DomainFactory.INSTANCE).loadLeaderboard(leaderboardName, /* regattaRegistry */ null);
|
||||
MockedTrackedRaceWithFixedRankAndManyCompetitors raceWithTwoCompetitors2 = new MockedTrackedRaceWithFixedRankAndManyCompetitors(wolfgang, /* rank */ 1, /* started */ true);
|
||||
MockedTrackedRaceWithFixedRankAndManyCompetitors raceWithTwoCompetitors2 = new MockedTrackedRaceWithFixedRankAndManyCompetitors(wolfgangWithBoat, /* rank */ 1, /* started */ true);
|
||||
raceWithTwoCompetitors2.addCompetitorAndBoat(hassoWithBoat);
|
||||
loadedLeaderboard.getRaceColumnByName(raceColumnName1).setTrackedRace(loadedLeaderboard.getFleet(null), raceWithTwoCompetitors2);
|
||||
assertTrue(Util.contains(loadedLeaderboard.getSuppressedCompetitors(), wolfgang));
|
||||
assertTrue(Util.contains(loadedLeaderboard.getSuppressedCompetitors(), wolfgangWithBoat.getCompetitor()));
|
||||
assertFalse(Util.contains(loadedLeaderboard.getSuppressedCompetitors(), hasso));
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ public class TestStoringAndRetrievingLeaderboards extends AbstractMongoDBTest {
|
||||
assertTrue(Arrays.equals(discardIndexResultsStartingWithHowManyRaces,
|
||||
((ThresholdBasedResultDiscardingRule) loadedLeaderboard.getResultDiscardingRule()).getDiscardIndexResultsStartingWithHowManyRaces()));
|
||||
assertEquals(1, Util.size(loadedLeaderboard.getCompetitors()));
|
||||
assertEquals(competitorWithBoat, loadedLeaderboard.getCompetitors().iterator().next());
|
||||
assertEquals(competitorWithBoat.getCompetitor(), loadedLeaderboard.getCompetitors().iterator().next());
|
||||
assertEquals(carriedPointsForWolfgangHunger, loadedLeaderboard.getCarriedPoints(competitorWithBoat.getCompetitor()), 0.000000001);
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -79,8 +79,8 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer
|
||||
// resolved properly on the replica.
|
||||
final DomainFactory domainFactory = new DomainFactoryImpl((srlid)->null);
|
||||
BoatClass boatClass = domainFactory.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */ true);
|
||||
CompetitorWithBoat hasso = AbstractLeaderboardTest.createCompetitorAndBoat("Dr. Hasso Plattner"); // don't create competitor using CompetitorStore
|
||||
final DynamicTrackedRace q2YellowTrackedRace = new MockedTrackedRaceWithFixedRank(hasso, /* rank */ 1, /* started */ false, boatClass) {
|
||||
CompetitorWithBoat hassoWithBoat = AbstractLeaderboardTest.createCompetitorAndBoat("Dr. Hasso Plattner"); // don't create competitor using CompetitorStore
|
||||
final DynamicTrackedRace q2YellowTrackedRace = new MockedTrackedRaceWithFixedRank(hassoWithBoat, /* rank */ 1, /* started */ false, boatClass) {
|
||||
private static final long serialVersionUID = 1234L;
|
||||
@Override
|
||||
public RegattaAndRaceIdentifier getRaceIdentifier() {
|
||||
@@ -98,9 +98,9 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer
|
||||
master.apply(new AddColumnToLeaderboard(Q2, leaderboardName, /* medalRace */ false)); // uses leaderboard's default fleet
|
||||
master.apply(new ConnectTrackedRaceToLeaderboardColumn(masterLeaderboard.getName(), Q2, /* default fleet */
|
||||
masterLeaderboard.getFleet(null).getName(), q2YellowTrackedRace.getRaceIdentifier()));
|
||||
master.apply(new UpdateLeaderboardMaxPointsReason(masterLeaderboard.getName(), Q2, hasso.getCompetitor().getId().toString(),
|
||||
master.apply(new UpdateLeaderboardMaxPointsReason(masterLeaderboard.getName(), Q2, hassoWithBoat.getCompetitor().getId().toString(),
|
||||
MaxPointsReason.DNF, MillisecondsTimePoint.now()));
|
||||
assertEquals(MaxPointsReason.DNF, masterLeaderboard.getMaxPointsReason(hasso.getCompetitor(),
|
||||
assertEquals(MaxPointsReason.DNF, masterLeaderboard.getMaxPointsReason(hassoWithBoat.getCompetitor(),
|
||||
masterLeaderboard.getRaceColumnByName(Q2), MillisecondsTimePoint.now()));
|
||||
|
||||
// re-load new master from persistence
|
||||
@@ -112,7 +112,7 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer
|
||||
// expecting the correction to not be in the leaderboard because the competitor was not found in the
|
||||
// domain factory's competitor store while loading and therefore the score correction could not immediately
|
||||
// be applied to the leaderboard's real score correction
|
||||
assertEquals(MaxPointsReason.NONE, masterLeaderboardReloaded.getMaxPointsReason(hasso.getCompetitor(),
|
||||
assertEquals(MaxPointsReason.NONE, masterLeaderboardReloaded.getMaxPointsReason(hassoWithBoat.getCompetitor(),
|
||||
masterLeaderboardReloaded.getRaceColumnByName(Q2), MillisecondsTimePoint.now()));
|
||||
|
||||
// replicate the re-loaded environment
|
||||
@@ -130,10 +130,10 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer
|
||||
assertNotNull(replicaLeaderboard.getRaceColumnByName(Q2));
|
||||
// so far, the replica should also only have the delayed corrections since during deserializing them the
|
||||
// replicatedHasso competitor was not yet known to the replica's competitor store:
|
||||
assertEquals(MaxPointsReason.NONE, replicaLeaderboard.getMaxPointsReason(hasso.getCompetitor(),
|
||||
assertEquals(MaxPointsReason.NONE, replicaLeaderboard.getMaxPointsReason(hassoWithBoat.getCompetitor(),
|
||||
replicaLeaderboard.getRaceColumnByName(Q2), MillisecondsTimePoint.now()));
|
||||
|
||||
logger.info("hasso object ID hash: "+System.identityHashCode(hasso));
|
||||
logger.info("hasso object ID hash: "+System.identityHashCode(hassoWithBoat));
|
||||
Leaderboard newMasterLeaderboard = master.getLeaderboardByName(masterLeaderboard.getName());
|
||||
SettableScoreCorrection newMasterScoreCorrections = newMasterLeaderboard.getScoreCorrection();
|
||||
RaceColumn newMasterQ2 = newMasterLeaderboard.getRaceColumnByName(Q2);
|
||||
@@ -151,13 +151,13 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer
|
||||
master.apply(new ConnectTrackedRaceToLeaderboardColumn(masterLeaderboard.getName(), Q2, /* default fleet */
|
||||
masterLeaderboard.getFleet(null).getName(), q2YellowTrackedRace.getRaceIdentifier()));
|
||||
logger.info("got score correction for competitor "+System.identityHashCode(newMasterScoreCorrections.getCompetitorsThatHaveCorrectionsIn(newMasterQ2).iterator().next()));
|
||||
assertTrue(Util.contains(newMasterScoreCorrections.getCompetitorsThatHaveCorrectionsIn(newMasterQ2), hasso)); // now score corrections must have been applied from Delayed...
|
||||
assertTrue(Util.contains(newMasterScoreCorrections.getCompetitorsThatHaveCorrectionsIn(newMasterQ2), hassoWithBoat.getCompetitor())); // now score corrections must have been applied from Delayed...
|
||||
// now the delayed corrections are expected to have been resolved:
|
||||
assertEquals(MaxPointsReason.DNF, master.getLeaderboardByName(leaderboardName).getMaxPointsReason(hasso.getCompetitor(),
|
||||
assertEquals(MaxPointsReason.DNF, master.getLeaderboardByName(leaderboardName).getMaxPointsReason(hassoWithBoat.getCompetitor(),
|
||||
master.getLeaderboardByName(leaderboardName).getRaceColumnByName(Q2), MillisecondsTimePoint.now()));
|
||||
Thread.sleep(1000); // wait for the tracked race to column connection to be replicated
|
||||
assertNotNull(replicaLeaderboard.getRaceColumnByName(Q2).getTrackedRace(hasso.getCompetitor()));
|
||||
assertEquals(MaxPointsReason.DNF, replicaLeaderboard.getMaxPointsReason(hasso.getCompetitor(),
|
||||
assertNotNull(replicaLeaderboard.getRaceColumnByName(Q2).getTrackedRace(hassoWithBoat.getCompetitor()));
|
||||
assertEquals(MaxPointsReason.DNF, replicaLeaderboard.getMaxPointsReason(hassoWithBoat.getCompetitor(),
|
||||
replicaLeaderboard.getRaceColumnByName(Q2), MillisecondsTimePoint.now()));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user