mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-02 18:33:54 +00:00
added a test for bug 858 that tests initial load replication of the same competitor object hooked up in two races
This commit is contained in:
1 parent
132c22ab7a
commit
85e9519d27
2 files changed
+70
-31
No files matched your search
+70
@@ -0,0 +1,70 @@
|
||||
package com.sap.sailing.server.replication.test;
|
||||
|
||||
import static org.junit.Assert.assertSame;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.junit.Before;
|
||||
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.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.test.TrackBasedTest;
|
||||
import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta;
|
||||
import com.sap.sailing.server.operationaltransformation.AddRaceDefinition;
|
||||
import com.sap.sailing.server.replication.ReplicationMasterDescriptor;
|
||||
|
||||
public class InitialLoadReplicationObjectIdentityTest extends AbstractServerReplicationTest {
|
||||
private Pair<ReplicationServiceTestImpl, ReplicationMasterDescriptor> replicationDescriptorPair;
|
||||
|
||||
/**
|
||||
* Drops the test DB. Sets up master and replica, starts the JMS message broker and registers the replica with the master.
|
||||
*/
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
try {
|
||||
replicationDescriptorPair = basicSetUp(true, /* master=null means create a new one */ null,
|
||||
/* replica=null means create a new one */null);
|
||||
} catch (Throwable t) {
|
||||
tearDown();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSameCompetitorInTwoRacesReplication() throws InterruptedException, ClassNotFoundException, IOException {
|
||||
final String boatClassName = "49er";
|
||||
// FIXME use master DomainFactory; see bug 592
|
||||
final DomainFactory masterDomainFactory = DomainFactory.INSTANCE;
|
||||
BoatClass boatClass = masterDomainFactory.getOrCreateBoatClass(boatClassName);
|
||||
final String baseEventName = "Test Event";
|
||||
AddDefaultRegatta addEventOperation = new AddDefaultRegatta(baseEventName, boatClassName);
|
||||
Regatta regatta = master.apply(addEventOperation);
|
||||
final String raceName1 = "Test Race 1";
|
||||
final String raceName2 = "Test Race 2";
|
||||
Competitor competitor = TrackBasedTest.createCompetitor("The Same Competitor");
|
||||
final CourseImpl masterCourse = new CourseImpl("Test Course", new ArrayList<Waypoint>());
|
||||
final ArrayList<Competitor> competitors = new ArrayList<Competitor>();
|
||||
competitors.add(competitor);
|
||||
RaceDefinition race1 = new RaceDefinitionImpl(raceName1, masterCourse, boatClass, competitors);
|
||||
// FIXME need to test initial load, not operation-based replication!!!
|
||||
AddRaceDefinition addRaceOperation1 = new AddRaceDefinition(new RegattaName(regatta.getName()), race1);
|
||||
master.apply(addRaceOperation1);
|
||||
RaceDefinition race2 = new RaceDefinitionImpl(raceName2, masterCourse, boatClass, competitors);
|
||||
AddRaceDefinition addRaceOperation2 = new AddRaceDefinition(new RegattaName(regatta.getName()), race2);
|
||||
master.apply(addRaceOperation2);
|
||||
replicationDescriptorPair.getA().startToReplicateFrom(replicationDescriptorPair.getB());
|
||||
Regatta replicaEvent = replica.getRegatta(new RegattaName(regatta.getName()));
|
||||
RaceDefinition replicaRace1 = replicaEvent.getRaceByName(raceName1);
|
||||
RaceDefinition replicaRace2 = replicaEvent.getRaceByName(raceName2);
|
||||
assertSame(replicaRace1.getCompetitors().iterator().next(), replicaRace2.getCompetitors().iterator().next());
|
||||
}
|
||||
}
|
||||
-31
@@ -4,7 +4,6 @@ import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNotSame;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -25,7 +24,6 @@ import com.sap.sailing.domain.common.DefaultLeaderboardName;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.test.TrackBasedTest;
|
||||
import com.sap.sailing.server.operationaltransformation.AddDefaultRegatta;
|
||||
import com.sap.sailing.server.operationaltransformation.AddRaceDefinition;
|
||||
import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard;
|
||||
@@ -102,33 +100,4 @@ public class ServerReplicationTest extends AbstractServerReplicationTest {
|
||||
assertEquals("Buoy1", replicaCourse.getFirstWaypoint().getBuoys().iterator().next().getName());
|
||||
assertEquals("Buoy3", replicaCourse.getLastWaypoint().getBuoys().iterator().next().getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSameCompetitorInTwoRacesReplication() throws InterruptedException {
|
||||
final String boatClassName = "49er";
|
||||
// FIXME use master DomainFactory; see bug 592
|
||||
final DomainFactory masterDomainFactory = DomainFactory.INSTANCE;
|
||||
BoatClass boatClass = masterDomainFactory.getOrCreateBoatClass(boatClassName);
|
||||
final String baseEventName = "Test Event";
|
||||
AddDefaultRegatta addEventOperation = new AddDefaultRegatta(baseEventName, boatClassName);
|
||||
Regatta regatta = master.apply(addEventOperation);
|
||||
final String raceName1 = "Test Race 1";
|
||||
final String raceName2 = "Test Race 2";
|
||||
Competitor competitor = TrackBasedTest.createCompetitor("The Same Competitor");
|
||||
final CourseImpl masterCourse = new CourseImpl("Test Course", new ArrayList<Waypoint>());
|
||||
final ArrayList<Competitor> competitors = new ArrayList<Competitor>();
|
||||
competitors.add(competitor);
|
||||
RaceDefinition race1 = new RaceDefinitionImpl(raceName1, masterCourse, boatClass, competitors);
|
||||
AddRaceDefinition addRaceOperation1 = new AddRaceDefinition(new RegattaName(regatta.getName()), race1);
|
||||
master.apply(addRaceOperation1);
|
||||
RaceDefinition race2 = new RaceDefinitionImpl(raceName2, masterCourse, boatClass, competitors);
|
||||
AddRaceDefinition addRaceOperation2 = new AddRaceDefinition(new RegattaName(regatta.getName()), race2);
|
||||
master.apply(addRaceOperation2);
|
||||
Thread.sleep(3000); // wait 1s for JMS to deliver the message and the message to be applied
|
||||
Regatta replicaEvent = replica.getRegatta(new RegattaName(regatta.getName()));
|
||||
RaceDefinition replicaRace1 = replicaEvent.getRaceByName(raceName1);
|
||||
RaceDefinition replicaRace2 = replicaEvent.getRaceByName(raceName2);
|
||||
assertSame(replicaRace1.getCompetitors().iterator().next(), replicaRace2.getCompetitors().iterator().next());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user