mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
implemented a test to check if the old finishing list confirmed event can be loaded correctly
This commit is contained in:
1 parent
b5581636b5
commit
964178eac5
2 files changed
+86
-9
No files matched your search
+51
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.mongodb.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.net.UnknownHostException;
|
||||
@@ -11,6 +12,9 @@ import java.util.UUID;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.mongodb.BasicDBList;
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.MongoException;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
@@ -32,6 +36,9 @@ import com.sap.sailing.domain.leaderboard.impl.ScoreCorrectionImpl;
|
||||
import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl;
|
||||
import com.sap.sailing.domain.persistence.MongoFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory;
|
||||
import com.sap.sailing.domain.persistence.impl.FieldNames;
|
||||
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
|
||||
import com.sap.sailing.domain.persistence.impl.MongoUtils;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
|
||||
@@ -224,6 +231,50 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndRetrieveSimpleLeaderboardWithBackwardsCompatibleRaceLogFinishPositioningConfirmedEvent() {
|
||||
RaceLogFinishPositioningConfirmedEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningConfirmedEvent(now, 0, null);
|
||||
|
||||
createAndStoreOldRaceLogFinishPositioningConfirmedEventDBEntry();
|
||||
|
||||
RaceLog loadedRaceLog = retrieveRaceLog();
|
||||
|
||||
loadedRaceLog.lockForRead();
|
||||
try {
|
||||
RaceLogEvent loadedEvent = loadedRaceLog.getFirstRawFix();
|
||||
RaceLogFinishPositioningConfirmedEvent loadedConfirmedEvent = (RaceLogFinishPositioningConfirmedEvent) loadedEvent;
|
||||
assertEquals(now, loadedConfirmedEvent.getTimePoint());
|
||||
assertEquals(0, loadedConfirmedEvent.getPassId());
|
||||
assertEquals(0, loadedConfirmedEvent.getInvolvedBoats().size());
|
||||
assertNull(event.getPositionedCompetitors());
|
||||
assertNull(loadedConfirmedEvent.getPositionedCompetitors());
|
||||
assertEquals(1, Util.size(loadedRaceLog.getFixes()));
|
||||
} finally {
|
||||
loadedRaceLog.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
|
||||
private void createAndStoreOldRaceLogFinishPositioningConfirmedEventDBEntry() {
|
||||
Fleet defaultFleet = leaderboard.getFleet(null);
|
||||
RaceColumn raceColumn = leaderboard.getRaceColumnByName(raceColumnName);
|
||||
mongoObjectFactory.storeLeaderboard(leaderboard);
|
||||
|
||||
DBObject result = new BasicDBObject();
|
||||
result.put(FieldNames.TIME_AS_MILLIS.name(), now.asMillis());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_CREATED_AT.name(), now.asMillis());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_ID.name(), UUID.randomUUID());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_PASS_ID.name(), 0);
|
||||
result.put(FieldNames.RACE_LOG_EVENT_INVOLVED_BOATS.name(), new BasicDBList());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFinishPositioningConfirmedEvent.class.getSimpleName());
|
||||
|
||||
DBObject raceLogResult = new BasicDBObject();
|
||||
raceLogResult.put(FieldNames.RACE_LOG_IDENTIFIER.name(), MongoUtils.escapeDollarAndDot(raceColumn.getRaceLogIdentifier(defaultFleet).getIdentifier().toString()));
|
||||
raceLogResult.put(FieldNames.RACE_LOG_EVENT.name(), result);
|
||||
|
||||
MongoObjectFactoryImpl factoryImpl = (MongoObjectFactoryImpl) mongoObjectFactory;
|
||||
factoryImpl.getRaceLogCollection().insert(raceLogResult);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogFinishPositioningListChangeEvent() {
|
||||
Competitor storedCompetitor = DomainFactory.INSTANCE.createCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", null, null);
|
||||
|
||||
+35
-9
@@ -1,7 +1,6 @@
|
||||
package com.sap.sailing.mongodb.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -14,6 +13,9 @@ import java.util.UUID;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.mongodb.BasicDBList;
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.MongoException;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
@@ -40,6 +42,9 @@ import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory;
|
||||
import com.sap.sailing.domain.persistence.impl.FieldNames;
|
||||
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
|
||||
import com.sap.sailing.domain.persistence.impl.MongoUtils;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
|
||||
@@ -127,7 +132,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest
|
||||
public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogProtestStartTimeEvent() {
|
||||
RaceLogProtestStartTimeEvent expectedEvent = RaceLogEventFactory.INSTANCE.createProtestStartTimeEvent(now, 0, MillisecondsTimePoint.now());
|
||||
|
||||
addAndStoreRaceLogEvent(regatta, raceColumnName, expectedEvent);
|
||||
addAndStoreRaceLogEvent(regatta, raceColumnName, expectedEvent);
|
||||
|
||||
RaceLog loadedRaceLog = retrieveRaceLog();
|
||||
|
||||
@@ -293,10 +298,10 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndRetrieveSimpleLeaderboardWithBackwardsCompatibleRaceLogFinishPositioningConfirmedEvent() {
|
||||
public void testStoreAndRetrieveSimpleLeaderboardWithBackwardsCompatibleRaceLogFinishPositioningConfirmedEvent() {
|
||||
RaceLogFinishPositioningConfirmedEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningConfirmedEvent(now, 0, null);
|
||||
|
||||
addAndStoreRaceLogEvent(regatta, raceColumnName, event);
|
||||
createAndStoreOldRaceLogFinishPositioningConfirmedEventDBEntry();
|
||||
|
||||
RaceLog loadedRaceLog = retrieveRaceLog();
|
||||
|
||||
@@ -304,18 +309,39 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest
|
||||
try {
|
||||
RaceLogEvent loadedEvent = loadedRaceLog.getFirstRawFix();
|
||||
RaceLogFinishPositioningConfirmedEvent loadedConfirmedEvent = (RaceLogFinishPositioningConfirmedEvent) loadedEvent;
|
||||
assertEquals(event.getTimePoint(), loadedConfirmedEvent.getTimePoint());
|
||||
assertEquals(event.getPassId(), loadedConfirmedEvent.getPassId());
|
||||
assertEquals(event.getId(), loadedConfirmedEvent.getId());
|
||||
assertEquals(event.getInvolvedBoats().size(), loadedConfirmedEvent.getInvolvedBoats().size());
|
||||
assertEquals(now, loadedConfirmedEvent.getTimePoint());
|
||||
assertEquals(0, loadedConfirmedEvent.getPassId());
|
||||
assertEquals(0, loadedConfirmedEvent.getInvolvedBoats().size());
|
||||
assertNull(event.getPositionedCompetitors());
|
||||
assertNotNull(loadedConfirmedEvent.getPositionedCompetitors());
|
||||
assertNull(loadedConfirmedEvent.getPositionedCompetitors());
|
||||
assertEquals(1, Util.size(loadedRaceLog.getFixes()));
|
||||
} finally {
|
||||
loadedRaceLog.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
|
||||
private void createAndStoreOldRaceLogFinishPositioningConfirmedEventDBEntry() {
|
||||
Series series = regatta.getSeriesByName(seriesName);
|
||||
Fleet fleet = series.getFleetByName(yellowFleetName);
|
||||
RaceColumn raceColumn = series.getRaceColumnByName(raceColumnName);
|
||||
mongoObjectFactory.storeRegatta(regatta);
|
||||
|
||||
DBObject result = new BasicDBObject();
|
||||
result.put(FieldNames.TIME_AS_MILLIS.name(), now.asMillis());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_CREATED_AT.name(), now.asMillis());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_ID.name(), UUID.randomUUID());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_PASS_ID.name(), 0);
|
||||
result.put(FieldNames.RACE_LOG_EVENT_INVOLVED_BOATS.name(), new BasicDBList());
|
||||
result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), RaceLogFinishPositioningConfirmedEvent.class.getSimpleName());
|
||||
|
||||
DBObject raceLogResult = new BasicDBObject();
|
||||
raceLogResult.put(FieldNames.RACE_LOG_IDENTIFIER.name(), MongoUtils.escapeDollarAndDot(raceColumn.getRaceLogIdentifier(fleet).getIdentifier().toString()));
|
||||
raceLogResult.put(FieldNames.RACE_LOG_EVENT.name(), result);
|
||||
|
||||
MongoObjectFactoryImpl factoryImpl = (MongoObjectFactoryImpl) mongoObjectFactory;
|
||||
factoryImpl.getRaceLogCollection().insert(raceLogResult);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogCourseAreaChangeEvent() {
|
||||
final UUID uuid = UUID.randomUUID();
|
||||
|
||||
Reference in new issue
Block a user