enable and test replication of the modification operations for Event.leaderboardGroups

This commit is contained in:
Axel Uhl committed 2014-05-28 16:32:32 +02:00
1 parent b84ca9e0d4
commit 306ecbbe3e
7 files changed
+126 -11

No files matched your search

@@ -3,8 +3,10 @@ package com.sap.sailing.server.replication.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@@ -16,6 +18,9 @@ import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.server.operationaltransformation.AddLeaderboardGroupToEvent;
import com.sap.sailing.server.operationaltransformation.CreateLeaderboardGroup;
import com.sap.sailing.server.operationaltransformation.RemoveLeaderboardGroupFromEvent;
public class EventReplicationTest extends AbstractServerReplicationTest {
@@ -39,7 +44,30 @@ public class EventReplicationTest extends AbstractServerReplicationTest {
assertEquals(replicatedEvent.getEndDate(), eventEndDate);
assertEquals(replicatedEvent.getVenue().getName(), venueName);
}
@Test
public void testAddAndRemoveLeaderboardGroupToEventReplication() throws InterruptedException {
final String eventName = "ESS Masquat";
final String venueName = "Masquat, Oman";
final boolean isPublic = false;
List<String> regattas = new ArrayList<String>();
regattas.add("Day1");
regattas.add("Day2");
final Event masterEvent = master.addEvent(eventName, null, null, venueName, isPublic, UUID.randomUUID());
final String leaderboardGroupName = "LGName";
master.apply(new CreateLeaderboardGroup(leaderboardGroupName, "LGDescription", /* displayGroupsInReverseOrder */false, /* leaderboardNames */
Collections.<String> emptyList(), /* overallLeaderboardDiscardThresholds */null, /* overallLeaderboardScoringSchemeType */
null));
master.apply(new AddLeaderboardGroupToEvent(masterEvent.getId(), leaderboardGroupName));
Thread.sleep(1000);
Event replicatedEvent = replica.getEvent(masterEvent.getId());
assertEquals(1, Util.size(replicatedEvent.getLeaderboardGroups()));
assertEquals(leaderboardGroupName, replicatedEvent.getLeaderboardGroups().iterator().next().getName());
assertTrue(master.apply(new RemoveLeaderboardGroupFromEvent(masterEvent.getId(), leaderboardGroupName)));
Thread.sleep(1000);
assertTrue(Util.isEmpty(replicatedEvent.getLeaderboardGroups()));
}
@Test
public void testEventReplicationWithNullStartAndEndDate() throws InterruptedException {
final String eventName = "ESS Masquat";
@@ -19,6 +19,7 @@ import org.junit.Test;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Series;
@@ -32,6 +33,7 @@ import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.common.media.MediaTrack;
import com.sap.sailing.domain.common.media.MediaTrack.MimeType;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
import com.sap.sailing.domain.persistence.PersistenceFactory;
import com.sap.sailing.domain.persistence.media.MediaDBFactory;
@@ -83,7 +85,7 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl
final TimePoint eventStartDate = new MillisecondsTimePoint(new Date());
final TimePoint eventEndDate = new MillisecondsTimePoint(new Date());
master.addEvent(eventName, eventStartDate, eventEndDate, venue, false, eventId);
Event event = master.addEvent(eventName, eventStartDate, eventEndDate, venue, false, eventId);
assertNotNull(master.getEvent(eventId));
assertNull(replica.getEvent(eventId));
@@ -112,10 +114,12 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl
leaderboardNames.add(leaderboardName);
int[] overallLeaderboardDiscardThresholds = new int[] {};
ScoringSchemeType overallLeaderboardScoringSchemeType = ScoringSchemeType.HIGH_POINT;
master.addLeaderboardGroup(leaderBoardGroupName, "Some descriptive Description", false, leaderboardNames, overallLeaderboardDiscardThresholds, overallLeaderboardScoringSchemeType);
LeaderboardGroup leaderboardGroup = master.addLeaderboardGroup(leaderBoardGroupName, "Some descriptive Description", false, leaderboardNames, overallLeaderboardDiscardThresholds, overallLeaderboardScoringSchemeType);
assertNotNull(master.getLeaderboardGroupByName(leaderBoardGroupName));
assertNull(replica.getLeaderboardGroupByName(leaderBoardGroupName));
event.addLeaderboardGroup(leaderboardGroup);
/* Media Library */
MediaTrack mediaTrack1 = new MediaTrack("title-1", "url", new Date(), 1, MimeType.mp4);
master.mediaTrackAdded(mediaTrack1);
@@ -136,12 +140,14 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl
}
}
assertNotNull(replica.getEvent(eventId));
Event replicaEvent = replica.getEvent(eventId);
assertNotNull(replicaEvent);
assertNotNull(replica.getRegatta(masterRegatta.getRegattaIdentifier()));
assertNotNull(replica.getLeaderboardGroupByName(leaderBoardGroupName));
LeaderboardGroup replicaLeaderboardGroup = replica.getLeaderboardGroupByName(leaderBoardGroupName);
assertNotNull(replicaLeaderboardGroup);
assertNotNull(replica.getLeaderboardByName(leaderboardName));
assertTrue(replica.getAllRegattas().iterator().hasNext());
assertSame(replicaLeaderboardGroup, replicaEvent.getLeaderboardGroups().iterator().next());
//System.out.println("InitialLoadReplicationObjectIdentityTest.testInitialLoad - replica.getAllMediaTracks: " + replica.getAllMediaTracks());
assertThat(replica.getAllMediaTracks().size(), is(3));