mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-09 22:01:02 +00:00
factored out commonalities of Kiel Week data based tests
This commit is contained in:
1 parent
eca261552c
commit
fbeadba61a
5 files changed
+162
-18
No files matched your search
+2
-7
@@ -2,6 +2,7 @@ package com.sap.sailing.domain.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -54,12 +55,10 @@ public class CourseUpdateTest extends AbstractTracTracLiveTest {
|
||||
private Event domainEvent;
|
||||
private DynamicTrackedEvent trackedEvent;
|
||||
private final RouteData[] routeData = new RouteData[1];
|
||||
private final List<Receiver> receivers;
|
||||
private DomainFactory domainFactory;
|
||||
|
||||
public CourseUpdateTest() throws URISyntaxException, MalformedURLException {
|
||||
super();
|
||||
receivers = new ArrayList<Receiver>();
|
||||
}
|
||||
|
||||
@Before
|
||||
@@ -68,6 +67,7 @@ public class CourseUpdateTest extends AbstractTracTracLiveTest {
|
||||
domainFactory = new DomainFactoryImpl();
|
||||
domainEvent = domainFactory.createEvent(getEvent());
|
||||
trackedEvent = domainFactory.getOrCreateTrackedEvent(domainEvent);
|
||||
ArrayList<Receiver> receivers = new ArrayList<Receiver>();
|
||||
receivers.add(new RaceCourseReceiver(domainFactory, trackedEvent, getEvent(), /* millisecondsOverWhichToAverageWind */
|
||||
EmptyWindStore.INSTANCE, this,
|
||||
30000, /* millisecondsOverWhichToAverageSpeed */30000) {
|
||||
@@ -94,11 +94,6 @@ public class CourseUpdateTest extends AbstractTracTracLiveTest {
|
||||
assertEquals("top", course.getLegs().get(1).getFrom().getName());
|
||||
}
|
||||
|
||||
private void assertNull(RaceDefinition existingRaceDefinitionForRace) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the race course's legs have corresponding {@link TrackedLeg}s and the {@link TrackedLeg}s have
|
||||
* {@link TrackedLegOfCompetitor} for each of the race's competitors.
|
||||
|
||||
+2
-10
@@ -3,9 +3,7 @@ package com.sap.sailing.domain.test;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -45,16 +43,13 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
|
||||
*
|
||||
*/
|
||||
@Ignore("Un-ignore when you need to fetch new tracks")
|
||||
public class FetchTracksAndStoreLocallyTest extends AbstractTracTracLiveTest {
|
||||
public class FetchTracksAndStoreLocallyTest extends KielerWoche2011BasedTest {
|
||||
final private Object semaphor = new Object();
|
||||
private final Map<Competitor, DynamicTrack<Competitor, GPSFixMoving>> tracks;
|
||||
private boolean trackComplete;
|
||||
|
||||
public FetchTracksAndStoreLocallyTest() throws URISyntaxException, MalformedURLException {
|
||||
super(Boolean.valueOf(System.getProperty("tractrac.tunnel", "false")) ? new URL("http://localhost:12348/events/event_20110609_KielerWoch/clientparams.php?event=event_20110609_KielerWoch&race=357c700a-9d9a-11e0-85be-406186cbf87c") :
|
||||
new URL("http://germanmaster.traclive.dk/events/event_20110609_KielerWoch/clientparams.php?event=event_20110609_KielerWoch&race=357c700a-9d9a-11e0-85be-406186cbf87c"),
|
||||
Boolean.valueOf(System.getProperty("tractrac.tunnel", "false")) ? new URI("tcp://localhost:1520") : new URI("tcp://germanmaster.traclive.dk:1520"),
|
||||
Boolean.valueOf(System.getProperty("tractrac.tunnel", "false")) ? new URI("tcp://localhost:1521") : new URI("tcp://germanmaster.traclive.dk:1521"));
|
||||
super();
|
||||
tracks = new HashMap<Competitor, DynamicTrack<Competitor,GPSFixMoving>>();
|
||||
}
|
||||
|
||||
@@ -144,7 +139,4 @@ public class FetchTracksAndStoreLocallyTest extends AbstractTracTracLiveTest {
|
||||
}
|
||||
}
|
||||
|
||||
protected String getExpectedEventName() {
|
||||
return "Kieler Woche";
|
||||
}
|
||||
}
|
||||
Executable
+101
@@ -0,0 +1,101 @@
|
||||
package com.sap.sailing.domain.test;
|
||||
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedEvent;
|
||||
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
|
||||
import com.sap.sailing.domain.tractracadapter.Receiver;
|
||||
import com.sap.sailing.domain.tractracadapter.ReceiverType;
|
||||
import com.sap.sailing.domain.tractracadapter.impl.DomainFactoryImpl;
|
||||
import com.tractrac.clientmodule.Race;
|
||||
|
||||
/**
|
||||
* Connects to the Kieler Woche 2011 TracTrac data of the 505 Race 2. Subclasses have to implement a @Before method
|
||||
* which calls {@link #setUp(ReceiverType[])} with a useful set of receiver types. When all stored data has been
|
||||
* received, the {@link #getSemaphor() semaphor} is notified. Therefore, a typical pattern for subclasses should be
|
||||
* to invoke {@link #setUp(ReceiverType[])}, then wait on the semaphor before starting with test processing.
|
||||
*
|
||||
* @author Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public abstract class KielerWoche2011BasedTest extends AbstractTracTracLiveTest {
|
||||
private DomainFactoryImpl domainFactory;
|
||||
private Event domainEvent;
|
||||
private DynamicTrackedEvent trackedEvent;
|
||||
private final Object semaphor = new Object();
|
||||
|
||||
/**
|
||||
* When the {@link #semaphor} is notified, this flag indicates whether {@link #storedDataEnd()} has already
|
||||
* been called.
|
||||
*/
|
||||
private boolean storedDataLoaded;
|
||||
|
||||
public KielerWoche2011BasedTest() throws MalformedURLException, URISyntaxException {
|
||||
// 505 Race 2: ID = 357c700a-9d9a-11e0-85be-406186cbf87c
|
||||
super(Boolean.valueOf(System.getProperty("tractrac.tunnel", "false")) ? new URL("http://localhost:12348/events/event_20110609_KielerWoch/clientparams.php?event=event_20110609_KielerWoch&race=357c700a-9d9a-11e0-85be-406186cbf87c") :
|
||||
new URL("http://germanmaster.traclive.dk/events/event_20110609_KielerWoch/clientparams.php?event=event_20110609_KielerWoch&race=357c700a-9d9a-11e0-85be-406186cbf87c"),
|
||||
Boolean.valueOf(System.getProperty("tractrac.tunnel", "false")) ? new URI("tcp://localhost:1520") : new URI("tcp://germanmaster.traclive.dk:1520"),
|
||||
Boolean.valueOf(System.getProperty("tractrac.tunnel", "false")) ? new URI("tcp://localhost:1521") : new URI("tcp://germanmaster.traclive.dk:1521"));
|
||||
}
|
||||
|
||||
protected void setUp(ReceiverType[] receiverTypes) throws MalformedURLException, IOException, InterruptedException {
|
||||
super.setUp();
|
||||
domainFactory = new DomainFactoryImpl();
|
||||
domainEvent = domainFactory.createEvent(getEvent());
|
||||
trackedEvent = domainFactory.getOrCreateTrackedEvent(domainEvent);
|
||||
ArrayList<Receiver> receivers = new ArrayList<Receiver>();
|
||||
for (Receiver r : domainFactory.getUpdateReceivers(trackedEvent, getEvent(), EmptyWindStore.INSTANCE,
|
||||
/* tokenToRetrieveAssociatedRace */ this, receiverTypes)) {
|
||||
receivers.add(r);
|
||||
}
|
||||
addListenersForStoredDataAndStartController(receivers);
|
||||
Race tractracRace = getEvent().getRaceList().iterator().next();
|
||||
// now we expect that there is no
|
||||
assertNull(domainFactory.getExistingRaceDefinitionForRace(tractracRace));
|
||||
}
|
||||
|
||||
/**
|
||||
* When all stored data has been transmitted, notify the semaphor for tests to start processing
|
||||
*/
|
||||
@Override
|
||||
public void storedDataEnd() {
|
||||
super.storedDataEnd();
|
||||
synchronized (semaphor) {
|
||||
storedDataLoaded = true;
|
||||
semaphor.notifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
protected String getExpectedEventName() {
|
||||
return "Kieler Woche";
|
||||
}
|
||||
|
||||
protected DomainFactoryImpl getDomainFactory() {
|
||||
return domainFactory;
|
||||
}
|
||||
|
||||
protected Event getDomainEvent() {
|
||||
return domainEvent;
|
||||
}
|
||||
|
||||
protected DynamicTrackedEvent getTrackedEvent() {
|
||||
return trackedEvent;
|
||||
}
|
||||
|
||||
protected Object getSemaphor() {
|
||||
return semaphor;
|
||||
}
|
||||
|
||||
protected boolean isStoredDataLoaded() {
|
||||
return storedDataLoaded;
|
||||
}
|
||||
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.sap.sailing.domain.test;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tractracadapter.ReceiverType;
|
||||
import com.sap.sailing.util.Util;
|
||||
import com.tractrac.clientmodule.Race;
|
||||
|
||||
public class WindEstimationOnKielerWocheDataTest extends KielerWoche2011BasedTest {
|
||||
private RaceDefinition race;
|
||||
private DynamicTrackedRace trackedRace;
|
||||
|
||||
public WindEstimationOnKielerWocheDataTest() throws MalformedURLException, URISyntaxException {
|
||||
super();
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws MalformedURLException, IOException, InterruptedException {
|
||||
super.setUp(new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS });
|
||||
Race tractracRace = getEvent().getRaceList().iterator().next();
|
||||
race = getDomainFactory().getRaceDefinition(tractracRace);
|
||||
assertNotNull(race);
|
||||
synchronized (getSemaphor()) {
|
||||
while (!isStoredDataLoaded()) {
|
||||
getSemaphor().wait();
|
||||
}
|
||||
}
|
||||
trackedRace = getTrackedEvent().getTrackedRace(race);
|
||||
}
|
||||
|
||||
private Competitor getCompetitorByName(String name) {
|
||||
for (Competitor c : trackedRace.getRace().getCompetitors()) {
|
||||
if (c.getName().equals(name)) {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetUp() {
|
||||
assertNotNull(trackedRace);
|
||||
assertTrue(Util.size(trackedRace.getTrack(getCompetitorByName("Dr.Plattner")).getFixes()) > 1000);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -25,7 +25,7 @@ import com.sap.sailing.domain.tracking.Wind;
|
||||
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
|
||||
import com.sap.sailing.util.Util;
|
||||
|
||||
public class WindEstimationTest extends StoredTrackBasedTest {
|
||||
public class WindEstimationOnStoredTracksTest extends StoredTrackBasedTest {
|
||||
private DynamicTrackedRace trackedRace;
|
||||
|
||||
@Before
|
||||
Reference in new issue
Block a user