mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
bug6117 aftermath: migrated PeerImpl.finalize() into a shutdown() method invoked by @AfterEach methods in tests
This commit is contained in:
+7
@@ -6,6 +6,7 @@ import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -47,6 +48,12 @@ public class OperationalTransformationTest {
|
||||
server.addPeer(replica);
|
||||
replica.addPeer(server);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
server.shutdown();
|
||||
replica.shutdown();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddLeaderboard() {
|
||||
|
||||
+6
-264
@@ -2,6 +2,7 @@ package com.sap.sailing.server.test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -45,32 +46,31 @@ public class RaceLogInRaceColumnTest {
|
||||
OperationalTransformer<RacingEventService, RacingEventServiceOperation<?>> transformer = new OperationalTransformer<>();
|
||||
server = new PeerImpl<>(transformer, racingEventServiceServer, Role.SERVER);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
server.shutdown();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddEventToSingleRaceLog() throws InterruptedException {
|
||||
String raceColumnName = "myRaceColumn";
|
||||
|
||||
RacingEventServiceOperation<FlexibleLeaderboard> addLeaderboardOp =
|
||||
new CreateFlexibleLeaderboard(
|
||||
LEADERBOARDNAME, LEADERBOARDNAME, new int[] { 5 }, new LowPoint(), null);
|
||||
server.apply(addLeaderboardOp);
|
||||
|
||||
RacingEventServiceOperation<RaceColumn> addLeaderboardColumn =
|
||||
new AddColumnToLeaderboard(
|
||||
raceColumnName, LEADERBOARDNAME, true);
|
||||
server.apply(addLeaderboardColumn);
|
||||
|
||||
TimePoint t1 = MillisecondsTimePoint.now();
|
||||
RaceLogEvent rlEvent = new RaceLogFlagEventImpl(
|
||||
t1, author, 0, Flags.CLASS, Flags.NONE, true);
|
||||
|
||||
Leaderboard leaderboard = racingEventServiceServer.getLeaderboardByName(LEADERBOARDNAME);
|
||||
RaceColumn raceColumn = leaderboard.getRaceColumnByName(raceColumnName);
|
||||
Fleet fleet = raceColumn.getFleetByName("Default");
|
||||
RaceLog raceLog = raceColumn.getRaceLog(fleet);
|
||||
|
||||
raceLog.add(rlEvent);
|
||||
|
||||
// TODO: Why do we have to sleep?
|
||||
Thread.sleep(1000);
|
||||
try {
|
||||
@@ -80,262 +80,4 @@ public class RaceLogInRaceColumnTest {
|
||||
raceLog.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
public class RaceLogInRacingEventServiceImplTest {
|
||||
|
||||
private static final String LEADERBOARDNAME = "TESTBOARD";
|
||||
|
||||
private RacingEventService racingEventServiceServer;
|
||||
private Peer<RacingEventServiceOperation<?>, RacingEventService> server;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MongoDBService.INSTANCE.getDB().dropDatabase();
|
||||
racingEventServiceServer = new RacingEventServiceImpl();
|
||||
OperationalTransformer transformer = new OperationalTransformer();
|
||||
server = new PeerImpl<>(transformer, racingEventServiceServer, Role.SERVER);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRecordingOfRaceLogEventsForDifferentRaces() throws InterruptedException {
|
||||
RacingEventServiceOperation<FlexibleLeaderboard> addLeaderboardOp = new CreateFlexibleLeaderboard(LEADERBOARDNAME, new int[] { 5 },
|
||||
new LowPoint(), null);
|
||||
server.apply(addLeaderboardOp);
|
||||
|
||||
RacingEventServiceOperation<RaceColumn> addLeaderboardColumn = new AddColumnToLeaderboard(
|
||||
"newColumn", LEADERBOARDNAME, true);
|
||||
server.apply(addLeaderboardColumn);
|
||||
|
||||
RacingEventServiceOperation<RaceColumn> addLeaderboardColumn2 = new AddColumnToLeaderboard(
|
||||
"ColumnMy", LEADERBOARDNAME, false);
|
||||
server.apply(addLeaderboardColumn2);
|
||||
|
||||
TimePoint t1 = MillisecondsTimePoint.now();
|
||||
TimePoint t2 = new MillisecondsTimePoint(t1.asMillis() + 1000);
|
||||
int passId = 0;
|
||||
boolean isDisplayed = true;
|
||||
RaceLogFlagEvent rcEvent = new RaceLogFlagEventImpl(t1, passId, Flags.CLASS, Flags.NONE, isDisplayed);
|
||||
RaceLogFlagEvent rcEvent2 = new RaceLogFlagEventImpl(t2, passId, Flags.AP, Flags.NONE, isDisplayed);
|
||||
|
||||
Leaderboard leaderboard = racingEventServiceServer.getLeaderboardByName(LEADERBOARDNAME);
|
||||
RaceColumn raceColumn = leaderboard.getRaceColumnByName("newColumn");
|
||||
Fleet fleet = raceColumn.getFleetByName("Default");
|
||||
|
||||
RaceLogIdentifier identifier = new RaceLogIdentifierImpl(leaderboard, raceColumn, fleet);
|
||||
|
||||
RaceLog raceLog = racingEventServiceServer.getRaceLog(identifier);
|
||||
raceLog.add(rcEvent);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
RaceLog raceLogAfterAdd = racingEventServiceServer.getRaceLog(identifier);
|
||||
raceLog.lockForRead();
|
||||
try {
|
||||
raceLogAfterAdd.lockForRead();
|
||||
try {
|
||||
assertEquals(Util.size(raceLog.getFixes()), Util.size(raceLogAfterAdd.getFixes()));
|
||||
} finally {
|
||||
raceLogAfterAdd.unlockAfterRead();
|
||||
}
|
||||
} finally {
|
||||
raceLog.unlockAfterRead();
|
||||
}
|
||||
|
||||
RaceColumn raceColumnMy = leaderboard.getRaceColumnByName("ColumnMy");
|
||||
Fleet fleetMy = raceColumnMy.getFleetByName("Default");
|
||||
RaceLogIdentifier identifierMy = new RaceLogIdentifierImpl(leaderboard, raceColumnMy, fleetMy);
|
||||
|
||||
RaceLog raceLogMy = racingEventServiceServer.getRaceLog(identifierMy);
|
||||
raceLogMy.add(rcEvent);
|
||||
raceLogMy.add(rcEvent2);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
RaceLog raceLogMyAfterAdd = racingEventServiceServer.getRaceLog(identifierMy);
|
||||
raceLogMy.lockForRead();
|
||||
try {
|
||||
raceLogMyAfterAdd.lockForRead();
|
||||
try {
|
||||
assertEquals(Util.size(raceLogMy.getFixes()), Util.size(raceLogMyAfterAdd.getFixes()));
|
||||
} finally {
|
||||
raceLogMyAfterAdd.unlockAfterRead();
|
||||
}
|
||||
raceLog.lockForRead();
|
||||
try {
|
||||
assertEquals(2, Util.size(raceLogMy.getFixes()));
|
||||
assertEquals(1, Util.size(raceLog.getFixes()));
|
||||
} finally {
|
||||
raceLog.unlockAfterRead();
|
||||
}
|
||||
} finally {
|
||||
raceLogMy.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRecordingOfRaceLogEventsWithRegattaLeaderboard() throws InterruptedException {
|
||||
String regattaName = "IDM 2013-Default";
|
||||
String regattaLeaderboardName = RegattaImpl.getFullName(regattaName, "Dragon");
|
||||
RacingEventServiceOperation<Regatta> addDefaultRegatta = new AddDefaultRegatta(regattaName, "Dragon", UUID.randomUUID());
|
||||
server.apply(addDefaultRegatta);
|
||||
|
||||
Regatta regatta = racingEventServiceServer.getRegattaByName(regattaLeaderboardName);
|
||||
Series series = regatta.getSeriesByName("Default");
|
||||
series.addRaceColumn("R1", racingEventServiceServer);
|
||||
series.addRaceColumn("R2", racingEventServiceServer);
|
||||
|
||||
RacingEventServiceOperation<RegattaLeaderboard> addLeaderboardOp =
|
||||
new CreateRegattaLeaderboard(regatta.getRegattaIdentifier(), new int[] { 5 }, null);
|
||||
server.apply(addLeaderboardOp);
|
||||
|
||||
|
||||
TimePoint t1 = MillisecondsTimePoint.now();
|
||||
TimePoint t2 = new MillisecondsTimePoint(t1.asMillis() + 1000);
|
||||
int passId = 0;
|
||||
boolean isDisplayed = true;
|
||||
RaceLogFlagEvent rcEvent = new RaceLogFlagEventImpl(t1, passId, Flags.CLASS, Flags.NONE, isDisplayed);
|
||||
RaceLogFlagEvent rcEvent2 = new RaceLogFlagEventImpl(t2, passId, Flags.AP, Flags.NONE, isDisplayed);
|
||||
|
||||
Leaderboard leaderboard = racingEventServiceServer.getLeaderboardByName(regattaLeaderboardName);
|
||||
RaceColumn raceColumn = leaderboard.getRaceColumnByName("R1");
|
||||
Fleet fleet = raceColumn.getFleetByName("Default");
|
||||
|
||||
RaceLogIdentifier identifierR1 = new RaceLogIdentifierImpl(leaderboard, raceColumn, fleet);
|
||||
|
||||
RaceLog raceLog = racingEventServiceServer.getRaceLog(identifierR1);
|
||||
raceLog.add(rcEvent);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
RaceLog raceLog2 = racingEventServiceServer.getRaceLog(identifierR1);
|
||||
raceLog.lockForRead();
|
||||
try {
|
||||
raceLog2.lockForRead();
|
||||
try {
|
||||
assertEquals(Util.size(raceLog.getFixes()), Util.size(raceLog2.getFixes()));
|
||||
} finally {
|
||||
raceLog2.unlockAfterRead();
|
||||
}
|
||||
} finally {
|
||||
raceLog.unlockAfterRead();
|
||||
}
|
||||
|
||||
RaceColumn raceColumnR2 = leaderboard.getRaceColumnByName("R2");
|
||||
Fleet fleetR2 = raceColumnR2.getFleetByName("Default");
|
||||
RaceLogIdentifier identifierR2 = new RaceLogIdentifierImpl(leaderboard, raceColumnR2, fleetR2);
|
||||
|
||||
RaceLog raceLogR2BeforeAdd = racingEventServiceServer.getRaceLog(identifierR2);
|
||||
raceLogR2BeforeAdd.add(rcEvent);
|
||||
raceLogR2BeforeAdd.add(rcEvent2);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
RaceLog raceLogR2AfterAdd = racingEventServiceServer.getRaceLog(identifierR2);
|
||||
raceLogR2BeforeAdd.lockForRead();
|
||||
try {
|
||||
raceLogR2AfterAdd.lockForRead();
|
||||
try {
|
||||
assertEquals(Util.size(raceLogR2BeforeAdd.getFixes()), Util.size(raceLogR2AfterAdd.getFixes()));
|
||||
} finally {
|
||||
raceLogR2AfterAdd.unlockAfterRead();
|
||||
}
|
||||
raceLog.lockForRead();
|
||||
try {
|
||||
assertEquals(2, Util.size(raceLogR2BeforeAdd.getFixes()));
|
||||
assertEquals(1, Util.size(raceLog.getFixes()));
|
||||
} finally {
|
||||
raceLog.unlockAfterRead();
|
||||
}
|
||||
} finally {
|
||||
raceLogR2BeforeAdd.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRecordingOfRaceLogEventOverOperationalTransformationCommand() throws InterruptedException {
|
||||
String regattaName = "IDM 2013-Default";
|
||||
String regattaLeaderboardName = RegattaImpl.getFullName(regattaName, "Dragon");
|
||||
RacingEventServiceOperation<Regatta> addDefaultRegatta = new AddDefaultRegatta(regattaName, "Dragon", UUID.randomUUID());
|
||||
server.apply(addDefaultRegatta);
|
||||
|
||||
Regatta regatta = racingEventServiceServer.getRegattaByName(regattaLeaderboardName);
|
||||
Series series = regatta.getSeriesByName("Default");
|
||||
series.addRaceColumn("R1", racingEventServiceServer);
|
||||
series.addRaceColumn("R2", racingEventServiceServer);
|
||||
|
||||
RacingEventServiceOperation<RegattaLeaderboard> addLeaderboardOp =
|
||||
new CreateRegattaLeaderboard(regatta.getRegattaIdentifier(), new int[] { 5 }, null);
|
||||
server.apply(addLeaderboardOp);
|
||||
|
||||
|
||||
TimePoint t1 = MillisecondsTimePoint.now();
|
||||
TimePoint t2 = new MillisecondsTimePoint(t1.asMillis() + 1000);
|
||||
int passId = 0;
|
||||
boolean isDisplayed = true;
|
||||
RaceLogFlagEvent rcEvent = new RaceLogFlagEventImpl(t1, passId, Flags.CLASS, Flags.NONE, isDisplayed);
|
||||
RaceLogFlagEvent rcEvent2 = new RaceLogFlagEventImpl(t2, passId, Flags.AP, Flags.NONE, isDisplayed);
|
||||
|
||||
Leaderboard leaderboard = racingEventServiceServer.getLeaderboardByName(regattaLeaderboardName);
|
||||
RaceColumn raceColumn = leaderboard.getRaceColumnByName("R1");
|
||||
Fleet fleet = raceColumn.getFleetByName("Default");
|
||||
|
||||
RaceLogIdentifier identifierR1 = new RaceLogIdentifierImpl(leaderboard, raceColumn, fleet);
|
||||
|
||||
RaceLog raceLogR1 = racingEventServiceServer.getRaceLog(identifierR1);
|
||||
|
||||
server.apply(new RecordRaceLogEvent(identifierR1, rcEvent));
|
||||
|
||||
Thread.sleep(1000);
|
||||
RaceLog raceLogR1_2 = racingEventServiceServer.getRaceLog(identifierR1);
|
||||
raceLogR1.lockForRead();
|
||||
try {
|
||||
raceLogR1_2.lockForRead();
|
||||
try {
|
||||
assertEquals(1, Util.size(raceLogR1.getFixes()));
|
||||
assertEquals(1, Util.size(raceLogR1_2.getFixes()));
|
||||
} finally {
|
||||
raceLogR1_2.unlockAfterRead();
|
||||
}
|
||||
} finally {
|
||||
raceLogR1.unlockAfterRead();
|
||||
}
|
||||
|
||||
RaceColumn raceColumnR2 = leaderboard.getRaceColumnByName("R2");
|
||||
Fleet fleetR2 = raceColumnR2.getFleetByName("Default");
|
||||
|
||||
RaceLogIdentifier identifierR2 = new RaceLogIdentifierImpl(leaderboard, raceColumnR2, fleetR2);
|
||||
|
||||
RaceLog raceLogR2 = racingEventServiceServer.getRaceLog(identifierR2);
|
||||
|
||||
server.apply(new RecordRaceLogEvent(identifierR2, rcEvent));
|
||||
server.apply(new RecordRaceLogEvent(identifierR2, rcEvent2));
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
RaceLog raceLogR2AfterAdd = racingEventServiceServer.getRaceLog(identifierR2);
|
||||
raceLogR2AfterAdd.lockForRead();
|
||||
try {
|
||||
raceLogR2.lockForRead();
|
||||
try {
|
||||
assertEquals(2, Util.size(raceLogR2.getFixes()));
|
||||
assertEquals(2, Util.size(raceLogR2AfterAdd.getFixes()));
|
||||
} finally {
|
||||
raceLogR2.unlockAfterRead();
|
||||
}
|
||||
raceLogR1_2.lockForRead();
|
||||
try {
|
||||
assertEquals(2, Util.size(raceLogR2AfterAdd.getFixes()));
|
||||
assertEquals(1, Util.size(raceLogR1_2.getFixes()));
|
||||
} finally {
|
||||
raceLogR1_2.unlockAfterRead();
|
||||
}
|
||||
} finally {
|
||||
raceLogR2AfterAdd.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
+8
@@ -7,6 +7,7 @@ import java.util.GregorianCalendar;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -91,6 +92,13 @@ public class RaceLogOperationalTransformationTest {
|
||||
client2.addPeer(server);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
server.shutdown();
|
||||
client1.shutdown();
|
||||
client2.shutdown();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleApply() {
|
||||
Calendar c = new GregorianCalendar(2013, 6, 7, 13, 59, 33);
|
||||
|
||||
Reference in New Issue
Block a user