diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/shared/analyzing/CompetitorsAndBoatsInLogAnalyzer.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/shared/analyzing/CompetitorsAndBoatsInLogAnalyzer.java index f5ed2191480..3a2e9ba2dfe 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/shared/analyzing/CompetitorsAndBoatsInLogAnalyzer.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/shared/analyzing/CompetitorsAndBoatsInLogAnalyzer.java @@ -7,11 +7,14 @@ import com.sap.sailing.domain.abstractlog.AbstractLog; import com.sap.sailing.domain.abstractlog.AbstractLogEvent; import com.sap.sailing.domain.abstractlog.BaseLogAnalyzer; import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogRegisterCompetitorEvent; +import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent; import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.base.CompetitorWithBoat; /** - * This class searches for {@link RaceLogRegisterCompetitorEvent}s in the given log. + * This class searches for {@link RaceLogRegisterCompetitorEvent}s or {@link RegattaLogRegisterCompetitorEvent}s in the given log + * in order to determine the competitor/boat mappings for both kind of events * */ public class CompetitorsAndBoatsInLogAnalyzer, EventT extends AbstractLogEvent, VisitorT> @@ -27,8 +30,14 @@ public class CompetitorsAndBoatsInLogAnalyzer allBoats = regatta.getAllBoats(); + assertTrue(Util.size(allBoats) == 2); + assertTrue(Util.contains(regatta.getAllBoats(), competitorWithBoat1.getBoat())); + assertTrue(Util.contains(regatta.getAllBoats(), competitorWithBoat2.getBoat())); addRaceColumns(numberOfQualifyingRaces, numberOfFinalRaces, regatta); RegattaLeaderboard fullLeaderboard = res.addRegattaLeaderboard(regatta.getRegattaIdentifier(), null, new int[] { 3, 5 }); // use the set-up and add a regatta leaderboard with eliminations that wraps the regatta leaderboard RegattaLeaderboardWithEliminations withEliminations = res.addRegattaLeaderboardWithEliminations("U16", /* leaderboardDisplayName */ "Display Name", fullLeaderboard); - res.apply(new UpdateEliminatedCompetitorsInLeaderboard(withEliminations.getName(), Collections.singleton(competitor1))); + res.apply(new UpdateEliminatedCompetitorsInLeaderboard(withEliminations.getName(), Collections.singleton(competitorWithBoat1))); DomainObjectFactory dof = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), DomainFactory.INSTANCE); Regatta loadedRegatta = dof.loadRegatta(regatta.getName(), /* trackedRegattaRegistry */ null); @@ -461,8 +464,8 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest assertTrue(loadedLeaderboardWithEliminations instanceof RegattaLeaderboardWithEliminations); assertEquals("Display Name", loadedLeaderboardWithEliminations.getDisplayName()); assertEquals(withEliminations.getAllCompetitors(), loadedLeaderboardWithEliminations.getAllCompetitors()); - assertTrue(((RegattaLeaderboardWithEliminations) loadedLeaderboardWithEliminations).isEliminated(competitor1)); - assertFalse(((RegattaLeaderboardWithEliminations) loadedLeaderboardWithEliminations).isEliminated(competitor2)); + assertTrue(((RegattaLeaderboardWithEliminations) loadedLeaderboardWithEliminations).isEliminated(competitorWithBoat1)); + assertFalse(((RegattaLeaderboardWithEliminations) loadedLeaderboardWithEliminations).isEliminated(competitorWithBoat2)); } @Test diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java index d493d8da401..6bfccf4152c 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java @@ -19,7 +19,7 @@ import org.junit.Test; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceCompetitorMappingFinder; -import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsAndBoatsInLogAnalyzer; +import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsInLogAnalyzer; import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; @@ -39,6 +39,7 @@ import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardsResource; +import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; public class LeaderboardsResourceCheckinAndOutTest extends AbstractJaxRsApiTest { @@ -55,7 +56,7 @@ public class LeaderboardsResourceCheckinAndOutTest extends AbstractJaxRsApiTest competitor = racingEventService.getBaseDomainFactory().getOrCreateCompetitorWithBoat(c.getId(), c.getName(), c.getShortName(), c.getColor(), c.getEmail(), c.getFlagImage(), (DynamicTeam) c.getTeam(), /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null, (DynamicBoat) boat); - Regatta regatta = new RegattaImpl("regatta", boatClass, /* canBoatsOfCompetitorsChangePerRace */ true, MillisecondsTimePoint.now(), + Regatta regatta = new RegattaImpl("regatta", boatClass, /* canBoatsOfCompetitorsChangePerRace */ false, MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), Collections.singleton(new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections .singleton(new FleetImpl("fleet")), Arrays.asList("column"), racingEventService)), false, new HighPoint(), 0, null, OneDesignRankingMetric::new); @@ -80,11 +81,11 @@ public class LeaderboardsResourceCheckinAndOutTest extends AbstractJaxRsApiTest Response response = resource.postCheckin(json.toString(), leaderboard.getName()); assertThat("checkin returns OK", response.getStatus(), equalTo(Response.Status.OK.getStatusCode())); - Map registeredCompetitors = new CompetitorsAndBoatsInLogAnalyzer<>(log).analyze(); + Iterable registeredCompetitors = new CompetitorsInLogAnalyzer<>(log).analyze(); Map>> mappings = new RegattaLogDeviceCompetitorMappingFinder( log).analyze(); - assertThat("competitor was registered", registeredCompetitors.size(), equalTo(1)); + assertThat("competitor was registered", Util.size(registeredCompetitors), equalTo(1)); assertThat("device mappings for competitor exist", mappings.size(), equalTo(1)); List> mappingsForC = mappings.get(competitor); assertThat("exactly one device mapping for competitor exists", mappingsForC.size(), equalTo(1));