From dcb092e1cf38d78275248a0705b8f98fa2ff2de3 Mon Sep 17 00:00:00 2001 From: I059829 Date: Wed, 30 Jan 2013 18:17:11 +0200 Subject: [PATCH] A testcase on race data persistance --- .../test/analysis/TestRacingEventService.java | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/analysis/TestRacingEventService.java diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/analysis/TestRacingEventService.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/analysis/TestRacingEventService.java new file mode 100644 index 00000000000..5a67aa0a294 --- /dev/null +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/analysis/TestRacingEventService.java @@ -0,0 +1,107 @@ +package com.sap.sailing.simulator.test.analysis; + +import static org.junit.Assert.*; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +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.common.RaceIdentifier; +import com.sap.sailing.domain.common.RegattaNameAndRaceName; +import com.sap.sailing.domain.tracking.GPSFixMoving; +import com.sap.sailing.domain.tracking.GPSFixTrack; +import com.sap.sailing.domain.tracking.RacesHandle; +import com.sap.sailing.domain.tracking.TrackedRace; +import com.sap.sailing.domain.tracking.impl.EmptyWindStore; +import com.sap.sailing.server.impl.RacingEventServiceImpl; + +public class TestRacingEventService { + + RacingEventServiceImpl service; + private RacesHandle raceHandle; + String paramURLStr = "http://germanmaster.traclive.dk/events/event_20110929_Internatio/clientparams.php?event=event_20110929_Internatio&race=d1f521fa-ec52-11e0-a523-406186cbf87c"; + String liveURIStr = "tcp://10.18.22.156:1520"; + String storedURIStr = "tcp://10.18.22.156:1521"; + + //@Before + //public void setUp() throws Exception { + //service = new RacingEventServiceImpl(); + //} + + @Test + public void test() throws Exception { + + System.setProperty("mongo.port", "10200"); + System.setProperty("http.proxyHost", "proxy.wdf.sap.corp"); + System.setProperty("http.proxyPort", "8080"); + + service = new RacingEventServiceImpl(); + URL paramURL = new URL(paramURLStr); + URI liveURI = new URI(liveURIStr); + URI storedURI = new URI(storedURIStr); + + //Object obj = new Object(); + raceHandle = service.addTracTracRace(paramURL, liveURI, storedURI, EmptyWindStore.INSTANCE, 60000, this); + + synchronized (this) { + this.wait(); + } + + System.out.println("Done synchronizing"); + + String regatta = raceHandle.getRegatta().getName(); + Set races = raceHandle.getRaces(); + + List racesList = new ArrayList(); + + for (RaceDefinition r : races) { + RaceIdentifier raceIdentifier = new RegattaNameAndRaceName(regatta, r.getName()); + TrackedRace tr = service.getExistingTrackedRace(raceIdentifier); + racesList.add(tr); + } + + + FileOutputStream f_os = new FileOutputStream(regatta + ".data"); + ObjectOutputStream os = new ObjectOutputStream(f_os); + os.writeObject(racesList); + os.close(); + + List retrievedRacesList = null; + FileInputStream f_in = new FileInputStream(regatta + ".data"); + ObjectInputStream obj_in = new ObjectInputStream (f_in); + retrievedRacesList = (ArrayList) obj_in.readObject(); + + for( TrackedRace r : retrievedRacesList) { + Iterable competitors = r.getRace().getCompetitors(); + System.out.println("" + competitors); + Iterator comIter = competitors.iterator(); + while (comIter.hasNext()) { + Competitor com = comIter.next(); + GPSFixTrack track = null; + Iterable fixes = null; + track = r.getTrack(com); + track.lockForRead(); + fixes = track.getFixes(); + GPSFixMoving fix = fixes.iterator().next(); + System.out.println("" + com.getName() + ", First GPS-Fix: " + fix.getPosition().getLatDeg() + ", " + fix.getPosition().getLngDeg()); + track.unlockAfterRead(); + } + + } + } + +}