added a "long-lost" test case for leaderboards with eliminations

This commit is contained in:
Axel Uhl
2020-10-15 17:08:55 +02:00
parent dd83a6777c
commit 818a323fd1
@@ -0,0 +1,88 @@
package com.sap.sailing.server.test;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.UUID;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.common.CompetitorRegistrationType;
import com.sap.sailing.domain.common.RankingMetrics;
import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO;
import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
import com.sap.sailing.domain.leaderboard.impl.DelegatingRegattaLeaderboardWithCompetitorElimination;
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
import com.sap.sailing.domain.persistence.PersistenceFactory;
import com.sap.sailing.server.impl.RacingEventServiceImpl;
import com.sap.sailing.server.interfaces.RacingEventService;
import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta;
import com.sap.sailing.server.operationaltransformation.CreateRegattaLeaderboard;
import com.sap.sailing.server.operationaltransformation.CreateRegattaLeaderboardWithEliminations;
import com.sap.sailing.server.operationaltransformation.RemoveLeaderboard;
import com.sap.sailing.server.operationaltransformation.RemoveRegatta;
import com.sap.sse.security.SecurityService;
import com.sap.sse.security.testsupport.SecurityServiceMockFactory;
public class LeaderboardWithEliminationTransitiveRemovalTest {
private RacingEventService server;
private Regatta regatta;
private RegattaLeaderboard regattaLeaderboard;
private DelegatingRegattaLeaderboardWithCompetitorElimination regattaLeaderboardWithEliminations;
@Before
public void setUp() {
PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().getDatabase().drop();
final SecurityService securityService = SecurityServiceMockFactory.mockSecurityService();
server = new RacingEventServiceImpl() {
@Override
public SecurityService getSecurityService() {
return securityService;
}
};
final LinkedHashMap<String, SeriesCreationParametersDTO> seriesStructure = new LinkedHashMap<>();
final RegattaCreationParametersDTO regattaStructure = new RegattaCreationParametersDTO(seriesStructure);
regatta = server.apply(new AddSpecificRegatta("Test", "Laser Int.", /* canBoatsOfCompetitorsChangePerRace */ false,
/* competitorRegistrationType */ CompetitorRegistrationType.CLOSED, /* registrationLinkSecret */ null,
/* startDate */ null, /* endDate */ null, /* id */ UUID.randomUUID(),
regattaStructure, /* persistent */ true, new LowPoint(),
/* courseAreaIds */ Collections.singleton(server.getBaseDomainFactory().getOrCreateCourseArea(UUID.randomUUID(), "Default").getId()),
/* buoyZoneRadiusInHullLengths */ null, /* useStartTimeInference */ false,
/* controlTrackingFromStartAndFinishTimes */ true, /* autoRestartTrackingUponCompetitorSetChange */ false,
RankingMetrics.ONE_DESIGN));
regattaLeaderboard = server.apply(new CreateRegattaLeaderboard(regatta.getRegattaIdentifier(),
/* leaderboardDisplayName */ null, /* discardThresholds */ new int[0]));
regattaLeaderboardWithEliminations =
server.apply(new CreateRegattaLeaderboardWithEliminations("With Eliminations", /* display name */ null,
regattaLeaderboard.getName()));
}
@Test
public void testAllThere() {
assertNotNull(regatta);
assertNotNull(regattaLeaderboard);
assertNotNull(regattaLeaderboardWithEliminations);
assertSame(regatta, regattaLeaderboard.getRegatta());
assertSame(regatta, regattaLeaderboardWithEliminations.getRegatta());
}
@Test
public void testRemovingRegattaRemovesAllLeaderboards() {
server.apply(new RemoveRegatta(regatta.getRegattaIdentifier()));
assertNull(server.getLeaderboardByName(regattaLeaderboard.getName()));
assertNull(server.getLeaderboardByName(regattaLeaderboardWithEliminations.getName()));
}
@Test
public void testRemovingRegattaLeaderboardRemovesLeaderboardWithEliminations() {
server.apply(new RemoveLeaderboard(regattaLeaderboard.getName()));
assertNull(server.getLeaderboardByName(regattaLeaderboard.getName()));
assertNull(server.getLeaderboardByName(regattaLeaderboardWithEliminations.getName()));
}
}