Added test to ensure that UpdateSeries also replicates newly created series

This commit is contained in:
Simon Pamies committed 2014-02-13 17:10:35 +01:00
1 parent 6c57f40ee2
commit 31c6aa8993
7 files changed
+87 -9

No files matched your search

@@ -23,10 +23,13 @@ import com.sap.sailing.domain.base.Series;
import com.sap.sailing.domain.base.configuration.impl.RegattaConfigurationImpl;
import com.sap.sailing.domain.base.impl.FleetImpl;
import com.sap.sailing.domain.base.impl.SeriesImpl;
import com.sap.sailing.domain.common.Color;
import com.sap.sailing.domain.common.CourseDesignerMode;
import com.sap.sailing.domain.common.RegattaName;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.dto.FleetDTO;
import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.server.operationaltransformation.UpdateSeries;
import com.sap.sailing.server.operationaltransformation.UpdateSpecificRegatta;
public class RegattaReplicationTest extends AbstractServerReplicationTest {
@@ -179,6 +182,49 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
assertNull(replicatedRegatta.getDefaultCourseArea());
}
@Test
public void testRegattaUpdateSeriesWithNewSeries() throws InterruptedException {
final String baseEventName = "Extreme Sailing Series 2020";
final String boatClassName = "Extreme40";
final List<String> emptyRaceColumnNamesList = Collections.emptyList();
Series qualification = new SeriesImpl("Qualification", /* isMedal */ false,
Arrays.asList(new Fleet[] { new FleetImpl("Yellow"), new FleetImpl("Blue") }), emptyRaceColumnNamesList, /* trackedRegattaRegistry */ null);
Regatta masterRegatta = master.createRegatta(baseEventName, boatClassName,
UUID.randomUUID(), Arrays.asList(new Series[] { qualification }), /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null);
Thread.sleep(1000);
Regatta replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName()));
assertNotNull(replicatedRegatta);
assertTrue(replicatedRegatta.isPersistent());
assertFalse(Util.isEmpty((replicatedRegatta.getSeries())));
Iterator<? extends Series> seriesIter = replicatedRegatta.getSeries().iterator();
Series replicatedQualification = seriesIter.next();
assertEquals("Qualification", replicatedQualification.getName());
assertEquals(2, Util.size(replicatedQualification.getFleets()));
assertFalse(seriesIter.hasNext());
Series finals = new SeriesImpl("Finals", /* isMedal */ false,
Arrays.asList(new Fleet[] { new FleetImpl("Gold", 1) }), emptyRaceColumnNamesList, /* trackedRegattaRegistry */ null);
FleetDTO finalsGoldFleet = new FleetDTO("Gold", 1, Color.GRAY);
master.apply(new UpdateSeries(masterRegatta.getRegattaIdentifier(), finals.getName(), finals.isMedal(),
new int[] {},
finals.isStartsWithZeroScore(), finals.isFirstColumnIsNonDiscardableCarryForward(),
finals.hasSplitFleetContiguousScoring(), Arrays.asList(new FleetDTO[] { finalsGoldFleet })));
Thread.sleep(1000);
replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName()));
assertNotNull(replicatedRegatta);
assertTrue(replicatedRegatta.isPersistent());
assertFalse(Util.isEmpty((replicatedRegatta.getSeries())));
seriesIter = replicatedRegatta.getSeries().iterator();
replicatedQualification = seriesIter.next();
assertEquals("Qualification", replicatedQualification.getName());
assertEquals(2, Util.size(replicatedQualification.getFleets()));
assertTrue(seriesIter.hasNext());
Series replicatedFinals = seriesIter.next();
assertEquals("Finals", replicatedFinals.getName());
assertEquals(1, Util.size(replicatedFinals.getFleets()));
assertNotNull(replicatedFinals.getFleetByName("Gold"));
assertEquals(1, replicatedFinals.getFleetByName("Gold").getOrdering());
}
@Test
public void testSpecificRegattaReplicationWithCourseArea() throws InterruptedException {
final String eventName = "ESS Singapur";