Added failing test case for bug2659

This commit is contained in:
Frederik Petersen
2015-04-30 10:28:06 +02:00
parent 27b601c08d
commit a1705cc369
3 changed files with 35 additions and 3 deletions
@@ -19,7 +19,9 @@ Require-Bundle: com.sap.sailing.domain,
com.sap.sailing.domain.test,
org.mockito.mockito-core;bundle-version="1.10.14",
com.sap.sse.common,
org.eclipse.jetty.server;bundle-version="9.2.2"
org.eclipse.jetty.server;bundle-version="9.2.2",
com.sap.sailing.domain.shared.android,
com.sap.sailing.domain.racelogtrackingadapter.testsupport
Import-Package: com.sap.sailing.server.gateway.jaxrs,
com.sap.sailing.server.gateway.jaxrs.spi,
org.json.simple,
@@ -45,7 +45,9 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogStartTimeEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogWindFixEvent;
import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultsImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogEventFactoryImpl;
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent;
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
@@ -88,6 +90,8 @@ import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.impl.WindImpl;
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
import com.sap.sailing.domain.common.media.MediaTrack;
import com.sap.sailing.domain.common.tracking.GPSFix;
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
@@ -100,6 +104,9 @@ import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard;
import com.sap.sailing.domain.persistence.PersistenceFactory;
import com.sap.sailing.domain.persistence.media.MediaDBFactory;
import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore;
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
import com.sap.sailing.domain.tracking.DynamicTrackedRegatta;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.WindTrack;
@@ -167,7 +174,8 @@ public class MasterDataImportTest {
public void testMasterDataImportWithoutHttpStack() throws MalformedURLException, IOException, InterruptedException,
ClassNotFoundException {
// Setup source service
RacingEventService sourceService = new RacingEventServiceImpl();
MockSmartphoneImeiServiceFinderFactory serviceFinderFactory = new MockSmartphoneImeiServiceFinderFactory();
RacingEventService sourceService = new RacingEventServiceImpl(null, null, serviceFinderFactory);
Event event = sourceService.addEvent(TEST_EVENT_NAME, /* eventDescription */ null, eventStartDate, eventEndDate, "testVenue", false, eventUUID);
UUID courseAreaUUID = UUID.randomUUID();
CourseArea courseArea = new CourseAreaImpl("testArea", courseAreaUUID);
@@ -254,6 +262,18 @@ public class MasterDataImportTest {
RegattaLogRegisterCompetitorEvent registerEvent = new RegattaLogRegisterCompetitorEventImpl(regattaLogTimepoint,
author, regattaLogTimepoint, UUID.randomUUID(), competitor);
regatta.getRegattaLog().add(registerEvent);
// Add some racelogtracking stuff
TimePoint logTimePoint3 = new MillisecondsTimePoint(1372489210000L);
TimePoint logTimePoint4 = new MillisecondsTimePoint(1372489200020L);
DeviceIdentifier deviceIdentifier = new SmartphoneImeiIdentifier("a");
RegattaLogDeviceCompetitorMappingEvent mappingEvent = new RegattaLogDeviceCompetitorMappingEventImpl(
logTimePoint4, author, logTimePoint4, UUID.randomUUID(), competitor,
deviceIdentifier, logTimePoint, logTimePoint3);
regatta.getRegattaLog().add(mappingEvent);
GPSFix gpsFix = new GPSFixMovingImpl(new DegreePosition(54.333, 10.133), logTimePoint2,
new KnotSpeedWithBearingImpl(10, new DegreeBearingImpl(90)));
sourceService.getGPSFixStore().storeFix(deviceIdentifier, gpsFix);
// Set score correction
double scoreCorrection = 12.0;
@@ -291,7 +311,7 @@ public class MasterDataImportTest {
// Delete all data above from the database, to allow recreating all of it on target server
deleteAllDataFromDatabase();
// Import in new service
destService = new RacingEventServiceImplMock(new DataImportProgressImpl(randomUUID));
destService = new RacingEventServiceImplMock(new DataImportProgressImpl(randomUUID), serviceFinderFactory);
domainFactory = destService.getBaseDomainFactory();
DB db = destService.getMongoObjectFactory().getDatabase();
db.setWriteConcern(WriteConcern.SAFE);
@@ -382,6 +402,9 @@ public class MasterDataImportTest {
Assert.assertNotNull(registerEventOnTarget);
Assert.assertEquals(registerEvent.getId(), registerEventOnTarget.getId());
Assert.assertEquals(competitor.getId(), registerEventOnTarget.getCompetitor().getId());
// Check for import of racelogtracking fix
Assert.assertTrue(destService.getGPSFixStore().getNumberOfFixes(deviceIdentifier) == 1);
// Check for persisting of race log events:
RacingEventService dest2 = new RacingEventServiceImplMock();
@@ -8,6 +8,7 @@ import com.sap.sailing.domain.common.impl.DataImportProgressImpl;
import com.sap.sailing.domain.tracking.RaceTracker;
import com.sap.sailing.server.impl.RacingEventServiceImpl;
import com.sap.sailing.server.masterdata.DataImportLockWithProgress;
import com.sap.sse.common.TypeBasedServiceFinderFactory;
public class RacingEventServiceImplMock extends RacingEventServiceImpl {
@@ -16,6 +17,12 @@ public class RacingEventServiceImplMock extends RacingEventServiceImpl {
public RacingEventServiceImplMock() {
super(false, null);
}
public RacingEventServiceImplMock(DataImportProgressImpl dataImportProgressImpl, TypeBasedServiceFinderFactory serviceFinderFactory) {
super(null, null, serviceFinderFactory);
lock = new DataImportLockWithProgress();
lock.addProgress(dataImportProgressImpl.getOperationId(), dataImportProgressImpl);
}
public RacingEventServiceImplMock(DataImportProgressImpl dataImportProgressImpl) {
lock = new DataImportLockWithProgress();