From 533547756bb1fdb1e3b1a66bc5f5ff326f151aca Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Fri, 9 Dec 2011 15:43:30 +0100 Subject: [PATCH 01/17] Added new Test case file to test the stop of trackers --- .../sap/sailing/server/test/RaceTrackerStartStopTest.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java new file mode 100644 index 00000000000..7d3a40119e1 --- /dev/null +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -0,0 +1,5 @@ +package com.sap.sailing.server.test; + +public class RaceTrackerStartStopTest { + +} From f246d3fc04d9635e6483cec3860759de4306cf60 Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Fri, 9 Dec 2011 17:57:36 +0100 Subject: [PATCH 02/17] Add Mocks, and modified tests --- .../META-INF/MANIFEST.MF | 1 + .../sailing/server/test/RaceTrackerMock.java | 63 +++++++++++++++++++ .../server/test/RaceTrackerStartStopTest.java | 29 ++++++++- .../test/RacingEventServiceImplMock.java | 31 +++++++++ .../server/impl/RacingEventServiceImpl.java | 6 +- 5 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java create mode 100644 java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java diff --git a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF index e0088719c55..006d5885c43 100755 --- a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF @@ -9,3 +9,4 @@ Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain, com.sap.sailing.domain.tractracadapter, org.junit4 +Import-Package: com.tractrac.clientmodule diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java new file mode 100644 index 00000000000..751f212a09a --- /dev/null +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java @@ -0,0 +1,63 @@ +package com.sap.sailing.server.test; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Set; + +import javax.management.RuntimeErrorException; + +import com.sap.sailing.domain.base.Event; +import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.tracking.DynamicTrackedEvent; +import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sailing.domain.tracking.RacesHandle; +import com.sap.sailing.domain.tracking.WindStore; + +public class RaceTrackerMock implements RaceTracker{ + + private Long id; + private Event event; + private Set raceDefinitions; + private boolean isTracking; + + public RaceTrackerMock(Long id) { + this.id = id; + } + + @Override + public void stop() throws MalformedURLException, IOException, InterruptedException { + isTracking = false; + } + + @Override + public Event getEvent() { + return event; + } + + @Override + public Set getRaces() { + return raceDefinitions; + } + + @Override + public RacesHandle getRaceHandle() { + throw new RuntimeException("No race Handle in RaceTrackerMock"); + } + + @Override + public DynamicTrackedEvent getTrackedEvent() { + // TODO Auto-generated method stub + return null; + } + + @Override + public WindStore getWindStore() { + throw new RuntimeException("No wind store in racetracker mock"); + } + + @Override + public Object getID() { + return id; + } + +} diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 7d3a40119e1..fd4e63662c3 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -1,5 +1,32 @@ package com.sap.sailing.server.test; -public class RaceTrackerStartStopTest { +import org.junit.Before; +import org.junit.Test; +import com.sap.sailing.domain.base.BoatClass; +import com.sap.sailing.domain.base.Event; +import com.sap.sailing.domain.base.impl.EventImpl; +import com.sap.sailing.server.RacingEventService; +import com.sap.sailing.server.impl.RacingEventServiceImpl; + +public class RaceTrackerStartStopTest { + + private final static String EVENTNAME = "TESTEVENT"; + + private RacingEventServiceImplMock racingEventService; + + private Event event; + private BoatClass boatClass; + + @Before + public void setUp(){ + event = new EventImpl(EVENTNAME, BOATCLASS); + } + + @Test + public RaceTrackerStartStopTest() { + racingEventService = new RacingEventServiceImplMock(); + racingEventService.getEventsByName().put("Testevent", ) + } + } diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java new file mode 100644 index 00000000000..1a39fee4a09 --- /dev/null +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java @@ -0,0 +1,31 @@ +package com.sap.sailing.server.test; + +import java.util.Map; +import java.util.Set; + +import com.sap.sailing.domain.base.Event; +import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sailing.server.impl.RacingEventServiceImpl; + + +public class RacingEventServiceImplMock extends RacingEventServiceImpl{ + + + public RacingEventServiceImplMock() { + super(); + } + + public Map getEventsByName(){ + return eventsByName; + } + + public Map> getRaceTrackersByEvent(){ + return raceTrackersByEvent; + } + + public Map getRaceTrackersByID(){ + return raceTrackersByID; + } + + +} diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 79517a902a8..fc18f4a8800 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -75,9 +75,9 @@ public class RacingEventServiceImpl implements RacingEventService { private final WindTrackerFactory windTrackerFactory; - private final Map eventsByName; + protected final Map eventsByName; - private final Map> raceTrackersByEvent; + protected final Map> raceTrackersByEvent; /** * Remembers the wind tracker and the port on which the UDP receiver with which the wind tracker is @@ -88,7 +88,7 @@ public class RacingEventServiceImpl implements RacingEventService { /** * Remembers the trackers by paramURL/liveURI/storedURI to avoid duplication */ - private final Map raceTrackersByID; + protected final Map raceTrackersByID; /** * Leaderboards managed by this racing event service From 735354041188b29f1020e99432d71459450fbcc4 Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Fri, 9 Dec 2011 21:24:27 +0100 Subject: [PATCH 03/17] Minimal edit at Mocks and RaceTracker test. I also had to add the json library to required bundles, because the RacingEventServiceimpl contains that json library. --- .../META-INF/MANIFEST.MF | 2 ++ .../sailing/server/test/RaceTrackerMock.java | 2 -- .../server/test/RaceTrackerStartStopTest.java | 34 ++++++++++++++----- .../test/RacingEventServiceImplMock.java | 9 +++-- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF index 006d5885c43..1c236a0466b 100755 --- a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF @@ -8,5 +8,7 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain, com.sap.sailing.domain.tractracadapter, + com.sap.sailing.domain.swisstimingadapter, + org.json.simple;bundle-version="1.1.0", org.junit4 Import-Package: com.tractrac.clientmodule diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java index 751f212a09a..a672660659c 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java @@ -4,8 +4,6 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.Set; -import javax.management.RuntimeErrorException; - import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.tracking.DynamicTrackedEvent; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index fd4e63662c3..75c8bf32a36 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -1,32 +1,50 @@ package com.sap.sailing.server.test; +import java.util.HashSet; +import java.util.Set; + import org.junit.Before; import org.junit.Test; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Event; +import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.EventImpl; -import com.sap.sailing.server.RacingEventService; -import com.sap.sailing.server.impl.RacingEventServiceImpl; +import com.sap.sailing.domain.tracking.RaceTracker; public class RaceTrackerStartStopTest { private final static String EVENTNAME = "TESTEVENT"; + private final static String BOATCLASSNAME = ""; private RacingEventServiceImplMock racingEventService; + private Long trackerID; private Event event; private BoatClass boatClass; - @Before - public void setUp(){ - event = new EventImpl(EVENTNAME, BOATCLASS); + private RaceTracker raceTracker; + + public RaceTrackerStartStopTest() { } - @Test - public RaceTrackerStartStopTest() { + @Before + public void setUp(){ racingEventService = new RacingEventServiceImplMock(); - racingEventService.getEventsByName().put("Testevent", ) + boatClass = new BoatClassImpl(BOATCLASSNAME); + event = new EventImpl(EVENTNAME, boatClass); + racingEventService.getEventsByNameMap().put(EVENTNAME, event); + + trackerID = new Long("1"); + raceTracker = new RaceTrackerMock(trackerID); + Set raceTrackerSet = new HashSet(); + racingEventService.getRaceTrackersByEventMap().put(event, raceTrackerSet); + racingEventService.getRaceTrackersByIDMap().put(trackerID, raceTracker); + } + + @Test + public void testService(){ + System.out.println("test"); } } diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java index 1a39fee4a09..3343924d254 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java @@ -8,6 +8,9 @@ import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.server.impl.RacingEventServiceImpl; + + + public class RacingEventServiceImplMock extends RacingEventServiceImpl{ @@ -15,15 +18,15 @@ public class RacingEventServiceImplMock extends RacingEventServiceImpl{ super(); } - public Map getEventsByName(){ + public Map getEventsByNameMap(){ return eventsByName; } - public Map> getRaceTrackersByEvent(){ + public Map> getRaceTrackersByEventMap(){ return raceTrackersByEvent; } - public Map getRaceTrackersByID(){ + public Map getRaceTrackersByIDMap(){ return raceTrackersByID; } From 93a07d70abbf311ea8479dd05c5205612e1c9efd Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Fri, 9 Dec 2011 22:06:22 +0100 Subject: [PATCH 04/17] Added the buoild of the strucutre in RacingEventSErviceImpl. Now the RaceTrackers, event and RaceDefinitoins should be set correctly. --- .../sailing/server/test/RaceTrackerMock.java | 18 +++++ .../server/test/RaceTrackerStartStopTest.java | 70 ++++++++++++++++--- 2 files changed, 79 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java index a672660659c..5913bc29050 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java @@ -18,6 +18,24 @@ public class RaceTrackerMock implements RaceTracker{ private Set raceDefinitions; private boolean isTracking; + public RaceTrackerMock() { + // TODO check if necesary + } + + + + public RaceTrackerMock(Long id, Event event, Set raceDefinitions, boolean isTracking) { + super(); + this.id = id; + this.event = event; + this.raceDefinitions = raceDefinitions; + this.isTracking = isTracking; + } + + public void setIsTracking(boolean isTracking){ + this.isTracking = isTracking; + } + public RaceTrackerMock(Long id) { this.id = id; } diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 75c8bf32a36..74cad4891b0 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -1,6 +1,13 @@ package com.sap.sailing.server.test; +import static org.junit.Assert.*; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.ArrayList; import java.util.HashSet; +import java.util.Iterator; +import java.util.List; import java.util.Set; import org.junit.Before; @@ -8,22 +15,30 @@ import org.junit.Test; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Event; +import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.impl.BoatClassImpl; +import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.EventImpl; +import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sailing.util.Util; +import com.sap.sailing.util.Util.Pair; public class RaceTrackerStartStopTest { private final static String EVENTNAME = "TESTEVENT"; - private final static String BOATCLASSNAME = ""; + private final static String BOATCLASSNAME = "HAPPYBOATCLASS"; private RacingEventServiceImplMock racingEventService; - private Long trackerID; - private Event event; private BoatClass boatClass; + private Set raceTrackerSet = new HashSet(); - private RaceTracker raceTracker; + private List> raceTrackerAndId; + + private RaceDefinition raceDef1; + private RaceDefinition raceDef2; + private RaceDefinition raceDef3; public RaceTrackerStartStopTest() { } @@ -34,17 +49,54 @@ public class RaceTrackerStartStopTest { boatClass = new BoatClassImpl(BOATCLASSNAME); event = new EventImpl(EVENTNAME, boatClass); racingEventService.getEventsByNameMap().put(EVENTNAME, event); + raceTrackerSet = new HashSet(); + raceTrackerAndId = new ArrayList>(); - trackerID = new Long("1"); - raceTracker = new RaceTrackerMock(trackerID); - Set raceTrackerSet = new HashSet(); + //raceDef1 = new RaceDefinitionImpl("racedef1", new CourseImpl("race1", null), new BoatClassImpl(BOATCLASSNAME), null); + raceDef1 = new RaceDefinitionImpl("racedef1", null, new BoatClassImpl(BOATCLASSNAME), null); + raceDef2 = new RaceDefinitionImpl("racedef2", null, new BoatClassImpl(BOATCLASSNAME), null); + raceDef3 = new RaceDefinitionImpl("racedef3", null, new BoatClassImpl(BOATCLASSNAME), null); + Set raceDefinitioSetRace1 = new HashSet(); + raceDefinitioSetRace1.add(raceDef1); + Set raceDefinitioSetRace2 = new HashSet(); + raceDefinitioSetRace2.add(raceDef1); + raceDefinitioSetRace2.add(raceDef2); + Set raceDefinitioSetRace3 = new HashSet(); + raceDefinitioSetRace3.add(raceDef1); + raceDefinitioSetRace3.add(raceDef2); + raceDefinitioSetRace3.add(raceDef3); + + Long trackerID1 = new Long(1); + Long trackerID2 = new Long(2); + Long trackerID3 = new Long(3); + RaceTrackerMock raceTracker1 = new RaceTrackerMock(new Long(1), event, raceDefinitioSetRace1, true); + RaceTrackerMock raceTracker2 = new RaceTrackerMock(new Long(2), event, raceDefinitioSetRace2, true); + RaceTrackerMock raceTracker3 = new RaceTrackerMock(new Long(3), event, raceDefinitioSetRace3, true); + raceTrackerAndId.add(new Pair(new Long(1), raceTracker1)); + raceTrackerAndId.add(new Pair(new Long(2), raceTracker2)); + raceTrackerAndId.add(new Pair(new Long(2), raceTracker3)); + raceTrackerSet.add(raceTracker1); + raceTrackerSet.add(raceTracker2); + raceTrackerSet.add(raceTracker3); racingEventService.getRaceTrackersByEventMap().put(event, raceTrackerSet); - racingEventService.getRaceTrackersByIDMap().put(trackerID, raceTracker); + racingEventService.getRaceTrackersByIDMap().put(trackerID1, raceTracker1); + racingEventService.getRaceTrackersByIDMap().put(trackerID2, raceTracker2); + racingEventService.getRaceTrackersByIDMap().put(trackerID3, raceTracker3); } + @Test + public void testUntrackRace() throws MalformedURLException, IOException, InterruptedException{ + racingEventService.stopTracking(event,raceDef2); + // assert that the racinEventService does not contain the raceDefinition in the map of trackers by ID + assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceDef2)); + // assert that the raceInEventService does contain the racedefinitoin in tht map of events + assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceDef2)); + } + + @Test public void testService(){ - System.out.println("test"); + } } From a136aa2068c1c265098773a012f6de1fade6ac6c Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Mon, 12 Dec 2011 09:01:06 +0100 Subject: [PATCH 05/17] Added more assertions --- .../server/test/RaceTrackerStartStopTest.java | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 74cad4891b0..f95961fbfc4 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -25,34 +25,35 @@ import com.sap.sailing.util.Util; import com.sap.sailing.util.Util.Pair; public class RaceTrackerStartStopTest { - + private final static String EVENTNAME = "TESTEVENT"; private final static String BOATCLASSNAME = "HAPPYBOATCLASS"; - + private RacingEventServiceImplMock racingEventService; private Event event; private BoatClass boatClass; private Set raceTrackerSet = new HashSet(); - + private List> raceTrackerAndId; - + private RaceDefinition raceDef1; private RaceDefinition raceDef2; private RaceDefinition raceDef3; - + public RaceTrackerStartStopTest() { } - + @Before - public void setUp(){ + public void setUp() { racingEventService = new RacingEventServiceImplMock(); boatClass = new BoatClassImpl(BOATCLASSNAME); event = new EventImpl(EVENTNAME, boatClass); racingEventService.getEventsByNameMap().put(EVENTNAME, event); raceTrackerSet = new HashSet(); - raceTrackerAndId = new ArrayList>(); - - //raceDef1 = new RaceDefinitionImpl("racedef1", new CourseImpl("race1", null), new BoatClassImpl(BOATCLASSNAME), null); + raceTrackerAndId = new ArrayList>(); + + // raceDef1 = new RaceDefinitionImpl("racedef1", new CourseImpl("race1", null), new + // BoatClassImpl(BOATCLASSNAME), null); raceDef1 = new RaceDefinitionImpl("racedef1", null, new BoatClassImpl(BOATCLASSNAME), null); raceDef2 = new RaceDefinitionImpl("racedef2", null, new BoatClassImpl(BOATCLASSNAME), null); raceDef3 = new RaceDefinitionImpl("racedef3", null, new BoatClassImpl(BOATCLASSNAME), null); @@ -65,7 +66,7 @@ public class RaceTrackerStartStopTest { raceDefinitioSetRace3.add(raceDef1); raceDefinitioSetRace3.add(raceDef2); raceDefinitioSetRace3.add(raceDef3); - + Long trackerID1 = new Long(1); Long trackerID2 = new Long(2); Long trackerID3 = new Long(3); @@ -82,21 +83,22 @@ public class RaceTrackerStartStopTest { racingEventService.getRaceTrackersByIDMap().put(trackerID1, raceTracker1); racingEventService.getRaceTrackersByIDMap().put(trackerID2, raceTracker2); racingEventService.getRaceTrackersByIDMap().put(trackerID3, raceTracker3); - } - + } + @Test - public void testUntrackRace() throws MalformedURLException, IOException, InterruptedException{ - racingEventService.stopTracking(event,raceDef2); + public void testUntrackRace() throws MalformedURLException, IOException, InterruptedException { + racingEventService.stopTracking(event, raceDef2); // assert that the racinEventService does not contain the raceDefinition in the map of trackers by ID assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceDef2)); // assert that the raceInEventService does contain the racedefinitoin in tht map of events - assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceDef2)); + assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(0).getB())); + assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(1).getB())); + assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(2).getB())); } - - + @Test - public void testService(){ - + public void testService() { + } - + } From 244b0ac890a7e2c52fe706abdcd52891d7d80d5e Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Mon, 12 Dec 2011 09:33:20 +0100 Subject: [PATCH 06/17] Added assertions --- .../server/test/RaceTrackerStartStopTest.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index f95961fbfc4..29b46ab6845 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -1,12 +1,11 @@ package com.sap.sailing.server.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertFalse; import java.io.IOException; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -17,11 +16,9 @@ import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.impl.BoatClassImpl; -import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.EventImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.tracking.RaceTracker; -import com.sap.sailing.util.Util; import com.sap.sailing.util.Util.Pair; public class RaceTrackerStartStopTest { @@ -40,9 +37,6 @@ public class RaceTrackerStartStopTest { private RaceDefinition raceDef2; private RaceDefinition raceDef3; - public RaceTrackerStartStopTest() { - } - @Before public void setUp() { racingEventService = new RacingEventServiceImplMock(); @@ -88,12 +82,13 @@ public class RaceTrackerStartStopTest { @Test public void testUntrackRace() throws MalformedURLException, IOException, InterruptedException { racingEventService.stopTracking(event, raceDef2); - // assert that the racinEventService does not contain the raceDefinition in the map of trackers by ID assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceDef2)); - // assert that the raceInEventService does contain the racedefinitoin in tht map of events - assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(0).getB())); - assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(1).getB())); - assertTrue(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(2).getB())); + + + + assertFalse(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(0).getB())); + assertFalse(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(1).getB())); + assertFalse(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(2).getB())); } @Test From 007d79a3166e373e73900f9eba7994f8de3e0812 Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Mon, 12 Dec 2011 10:37:36 +0100 Subject: [PATCH 07/17] Test for StopTrackingRace tests the stopTracking Method correctly. --- .../server/test/RaceTrackerStartStopTest.java | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 29b46ab6845..86b8e56b7e6 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -1,12 +1,12 @@ package com.sap.sailing.server.test; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import java.io.IOException; import java.net.MalformedURLException; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; +import java.util.Iterator; import java.util.Set; import org.junit.Before; @@ -19,7 +19,6 @@ import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.EventImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.tracking.RaceTracker; -import com.sap.sailing.util.Util.Pair; public class RaceTrackerStartStopTest { @@ -31,12 +30,14 @@ public class RaceTrackerStartStopTest { private BoatClass boatClass; private Set raceTrackerSet = new HashSet(); - private List> raceTrackerAndId; - private RaceDefinition raceDef1; private RaceDefinition raceDef2; private RaceDefinition raceDef3; + private RaceTrackerMock raceTracker1; + private RaceTrackerMock raceTracker2; + private RaceTrackerMock raceTracker3; + @Before public void setUp() { racingEventService = new RacingEventServiceImplMock(); @@ -44,10 +45,6 @@ public class RaceTrackerStartStopTest { event = new EventImpl(EVENTNAME, boatClass); racingEventService.getEventsByNameMap().put(EVENTNAME, event); raceTrackerSet = new HashSet(); - raceTrackerAndId = new ArrayList>(); - - // raceDef1 = new RaceDefinitionImpl("racedef1", new CourseImpl("race1", null), new - // BoatClassImpl(BOATCLASSNAME), null); raceDef1 = new RaceDefinitionImpl("racedef1", null, new BoatClassImpl(BOATCLASSNAME), null); raceDef2 = new RaceDefinitionImpl("racedef2", null, new BoatClassImpl(BOATCLASSNAME), null); raceDef3 = new RaceDefinitionImpl("racedef3", null, new BoatClassImpl(BOATCLASSNAME), null); @@ -64,12 +61,9 @@ public class RaceTrackerStartStopTest { Long trackerID1 = new Long(1); Long trackerID2 = new Long(2); Long trackerID3 = new Long(3); - RaceTrackerMock raceTracker1 = new RaceTrackerMock(new Long(1), event, raceDefinitioSetRace1, true); - RaceTrackerMock raceTracker2 = new RaceTrackerMock(new Long(2), event, raceDefinitioSetRace2, true); - RaceTrackerMock raceTracker3 = new RaceTrackerMock(new Long(3), event, raceDefinitioSetRace3, true); - raceTrackerAndId.add(new Pair(new Long(1), raceTracker1)); - raceTrackerAndId.add(new Pair(new Long(2), raceTracker2)); - raceTrackerAndId.add(new Pair(new Long(2), raceTracker3)); + raceTracker1 = new RaceTrackerMock(new Long(1), event, raceDefinitioSetRace1, true); + raceTracker2 = new RaceTrackerMock(new Long(2), event, raceDefinitioSetRace2, true); + raceTracker3 = new RaceTrackerMock(new Long(3), event, raceDefinitioSetRace3, true); raceTrackerSet.add(raceTracker1); raceTrackerSet.add(raceTracker2); raceTrackerSet.add(raceTracker3); @@ -80,15 +74,19 @@ public class RaceTrackerStartStopTest { } @Test - public void testUntrackRace() throws MalformedURLException, IOException, InterruptedException { + public void testStopTrackingRace() throws MalformedURLException, IOException, InterruptedException { racingEventService.stopTracking(event, raceDef2); - assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceDef2)); - - - - assertFalse(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(0).getB())); - assertFalse(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(1).getB())); - assertFalse(racingEventService.getRaceTrackersByEventMap().containsValue(raceTrackerAndId.get(2).getB())); + assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); + assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); + assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); + // The RaceTrakcersByEvent map should contain a tracker with a set of RaceDefinitions, containing the + // raceDefinition1 + assert racingEventService.getRaceTrackersByEventMap().size() == 1; + Iterator raceTrackerIter = racingEventService.getRaceTrackersByEventMap().get(event).iterator(); + while(raceTrackerIter.hasNext()){ + RaceTracker currentTracker = raceTrackerIter.next(); + assert(currentTracker.equals(raceTracker1)); + } } @Test From b4f8e9c7105c4dc6197c0c865b3b9a93febdc9e4 Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Mon, 12 Dec 2011 11:39:26 +0100 Subject: [PATCH 08/17] Corrected assertions for test that tests if the stopTrackingMethod works correctly. Added a test that checks if a race is removed correctly if the removeRace method is called. Added a test that checks if a tracker is removed when the removed race was the last race, tracked by the raceTracker. --- .../sailing/server/test/RaceTrackerMock.java | 4 + .../server/test/RaceTrackerStartStopTest.java | 77 +++++++++++++++++-- .../test/RacingEventServiceImplMock.java | 4 +- 3 files changed, 77 insertions(+), 8 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java index 5913bc29050..109bf291965 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java @@ -35,6 +35,10 @@ public class RaceTrackerMock implements RaceTracker{ public void setIsTracking(boolean isTracking){ this.isTracking = isTracking; } + + public boolean getIsTracking(){ + return isTracking; + } public RaceTrackerMock(Long id) { this.id = id; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 86b8e56b7e6..f48cd90aeb3 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.HashSet; import java.util.Iterator; +import java.util.Map; import java.util.Set; import org.junit.Before; @@ -19,6 +20,7 @@ import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.EventImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sailing.server.RacingEventService; public class RaceTrackerStartStopTest { @@ -43,11 +45,15 @@ public class RaceTrackerStartStopTest { racingEventService = new RacingEventServiceImplMock(); boatClass = new BoatClassImpl(BOATCLASSNAME); event = new EventImpl(EVENTNAME, boatClass); + racingEventService.getEventsByName().put(EVENTNAME, event); racingEventService.getEventsByNameMap().put(EVENTNAME, event); raceTrackerSet = new HashSet(); - raceDef1 = new RaceDefinitionImpl("racedef1", null, new BoatClassImpl(BOATCLASSNAME), null); - raceDef2 = new RaceDefinitionImpl("racedef2", null, new BoatClassImpl(BOATCLASSNAME), null); - raceDef3 = new RaceDefinitionImpl("racedef3", null, new BoatClassImpl(BOATCLASSNAME), null); + raceDef1 = new RaceDefinitionImpl("racedef1", null, boatClass, null); + raceDef2 = new RaceDefinitionImpl("racedef2", null, boatClass, null); + raceDef3 = new RaceDefinitionImpl("racedef3", null, boatClass, null); + event.addRace(raceDef1); + event.addRace(raceDef2); + event.addRace(raceDef3); Set raceDefinitioSetRace1 = new HashSet(); raceDefinitioSetRace1.add(raceDef1); Set raceDefinitioSetRace2 = new HashSet(); @@ -57,7 +63,6 @@ public class RaceTrackerStartStopTest { raceDefinitioSetRace3.add(raceDef1); raceDefinitioSetRace3.add(raceDef2); raceDefinitioSetRace3.add(raceDef3); - Long trackerID1 = new Long(1); Long trackerID2 = new Long(2); Long trackerID3 = new Long(3); @@ -73,9 +78,23 @@ public class RaceTrackerStartStopTest { racingEventService.getRaceTrackersByIDMap().put(trackerID3, raceTracker3); } + /** + * This test method tests, if the {@link RacingEventService#stopTracking(Event, RaceDefinition) stopTracking} method works correctly. + * @throws MalformedURLException + * @throws IOException + * @throws InterruptedException + */ @Test public void testStopTrackingRace() throws MalformedURLException, IOException, InterruptedException { racingEventService.stopTracking(event, raceDef2); + /* + * The raceTracker2 and raceTracker3 should currently not be in track mode. + */ + assertFalse(raceTracker2.getIsTracking()); + assertFalse(raceTracker3.getIsTracking()); + /* + * The RaceTrackersByID map should not contain the trackers raceTracker2 and raceTracker3 anymore + */ assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); @@ -88,10 +107,54 @@ public class RaceTrackerStartStopTest { assert(currentTracker.equals(raceTracker1)); } } - + /** + * This test methods checks if the {@link RacingEventService#removeRace(Event, RaceDefinition) removeRace} method works correctly + * @throws MalformedURLException + * @throws IOException + * @throws InterruptedException + */ @Test - public void testService() { - + public void testRemoveRace() throws MalformedURLException, IOException, InterruptedException { + racingEventService.removeRace(event, raceDef2); + // The event map should still contain the raceTrackers + assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker1)); + assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker2)); + assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker3)); + // The raceTrackerMap should still contain the raceTrackers. These raceTracker should not contain the raceDefinition raceDef2 anymore + assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); + assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); + assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); + // The raceTracker should still exist, but not containing the raceDef2 anymore + assertTrue(raceTracker1.getRaces().contains(raceDef1)); + assert raceTracker1.getRaces().size()==1; + assertTrue(raceTracker2.getRaces().contains(raceDef1)); + assert raceTracker2.getRaces().size()==1; + assertTrue(raceTracker3.getRaces().contains(raceDef1)); + assertTrue(raceTracker3.getRaces().contains(raceDef3)); + assert raceTracker1.getRaces().size()==2; + } + /** + * This test methods checks if the {@link RacingEventService#removeRace(Event, RaceDefinition) removeRace} method works correctly if the + * race to be stopped is the last race of a tracker + * @throws MalformedURLException + * @throws IOException + * @throws InterruptedException + */ + @Test + public void testRemoveLastRaceOfTracker() throws MalformedURLException, IOException, InterruptedException{ + racingEventService.removeRace(event, raceDef1); + racingEventService.removeRace(event, raceDef2); + // The event map should still contain the raceTrackers except of raceTracker1 and raceTracker2 + assertFalse(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker1)); + assertFalse(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker2)); + assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker3)); + // The RaceTrackerByID map should still contain raceTracker3, but not raceTracker1 and raceTracker2 anymore + assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); + assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); + assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); + // The raceTracker 3 should exist, and it should contain the raceDefinition3 only + assertTrue(raceTracker3.getRaces().contains(raceDef3)); + assert raceTracker3.getRaces().size() == 1; } } diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java index 3343924d254..23cfb01437b 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java @@ -30,5 +30,7 @@ public class RacingEventServiceImplMock extends RacingEventServiceImpl{ return raceTrackersByID; } - + public Map getEventsByName(){ + return eventsByName; + } } From 12ea725dd0c5f9595e72ae8f23ea1ab79d2a6891 Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Mon, 12 Dec 2011 12:15:27 +0100 Subject: [PATCH 09/17] Removed unused imports --- .../com/sap/sailing/server/test/RaceTrackerStartStopTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index f48cd90aeb3..3f7e29cbcdf 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -7,7 +7,6 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.HashSet; import java.util.Iterator; -import java.util.Map; import java.util.Set; import org.junit.Before; From 9574888c86bda7f12dac4b74c8e227b5b857889f Mon Sep 17 00:00:00 2001 From: Fabian Schwarz-Fritz Date: Mon, 12 Dec 2011 13:05:59 +0100 Subject: [PATCH 10/17] Corrected imports --- .../sap/sailing/server/test/RaceTrackerStartStopTest.java | 5 +++-- .../sap/sailing/server/test/RacingEventServiceImplMock.java | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 3f7e29cbcdf..021abe37881 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -97,8 +97,9 @@ public class RaceTrackerStartStopTest { assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); - // The RaceTrakcersByEvent map should contain a tracker with a set of RaceDefinitions, containing the - // raceDefinition1 + /* The RaceTrakcersByEvent map should contain a tracker with a set of RaceDefinitions, containing the + * raceDefinition1 + */ assert racingEventService.getRaceTrackersByEventMap().size() == 1; Iterator raceTrackerIter = racingEventService.getRaceTrackersByEventMap().get(event).iterator(); while(raceTrackerIter.hasNext()){ diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java index 23cfb01437b..33699e2b3b9 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java @@ -12,7 +12,6 @@ import com.sap.sailing.server.impl.RacingEventServiceImpl; public class RacingEventServiceImplMock extends RacingEventServiceImpl{ - public RacingEventServiceImplMock() { super(); From cf930c857c6b1f486fb42d8d546fa24ff9cea473 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 17:41:17 +0100 Subject: [PATCH 11/17] adjusted after merge; using *.server.api --- .../META-INF/MANIFEST.MF | 1 + .../server/test/RaceTrackerStartStopTest.java | 2 +- .../test/RacingEventServiceImplMock.java | 22 ++++++++----------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF index 1c236a0466b..9e96f75cc68 100755 --- a/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.test/META-INF/MANIFEST.MF @@ -6,6 +6,7 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: com.sap.sailing.server, + com.sap.sailing.server.api, com.sap.sailing.domain, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain.swisstimingadapter, diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 021abe37881..c9342dd9f39 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -141,7 +141,7 @@ public class RaceTrackerStartStopTest { * @throws InterruptedException */ @Test - public void testRemoveLastRaceOfTracker() throws MalformedURLException, IOException, InterruptedException{ + public void testRemoveLastRaceOfTracker() throws MalformedURLException, IOException, InterruptedException { racingEventService.removeRace(event, raceDef1); racingEventService.removeRace(event, raceDef2); // The event map should still contain the raceTrackers except of raceTracker1 and raceTracker2 diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java index 33699e2b3b9..36bd1ebebcf 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RacingEventServiceImplMock.java @@ -7,29 +7,25 @@ import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.server.impl.RacingEventServiceImpl; +public class RacingEventServiceImplMock extends RacingEventServiceImpl { - - - -public class RacingEventServiceImplMock extends RacingEventServiceImpl{ - public RacingEventServiceImplMock() { super(); } - - public Map getEventsByNameMap(){ + + public Map getEventsByNameMap() { return eventsByName; } - - public Map> getRaceTrackersByEventMap(){ + + public Map> getRaceTrackersByEventMap() { return raceTrackersByEvent; } - - public Map getRaceTrackersByIDMap(){ + + public Map getRaceTrackersByIDMap() { return raceTrackersByID; } - - public Map getEventsByName(){ + + public Map getEventsByName() { return eventsByName; } } From 06ee0b5d48c7ccf7909e638dbee17a0d3ea92e17 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 18:05:40 +0100 Subject: [PATCH 12/17] fixed assertions by not using Java assert but JUnit assert* --- .../server/test/RaceTrackerStartStopTest.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index c9342dd9f39..606453695bd 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -1,6 +1,8 @@ package com.sap.sailing.server.test; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import java.io.IOException; @@ -86,25 +88,20 @@ public class RaceTrackerStartStopTest { @Test public void testStopTrackingRace() throws MalformedURLException, IOException, InterruptedException { racingEventService.stopTracking(event, raceDef2); - /* - * The raceTracker2 and raceTracker3 should currently not be in track mode. - */ + // The raceTracker2 and raceTracker3 should currently not be in track mode. assertFalse(raceTracker2.getIsTracking()); assertFalse(raceTracker3.getIsTracking()); - /* - * The RaceTrackersByID map should not contain the trackers raceTracker2 and raceTracker3 anymore - */ + // The RaceTrackersByID map should not contain the trackers raceTracker2 and raceTracker3 anymore assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); - /* The RaceTrakcersByEvent map should contain a tracker with a set of RaceDefinitions, containing the - * raceDefinition1 - */ - assert racingEventService.getRaceTrackersByEventMap().size() == 1; + // The RaceTrakcersByEvent map should contain a tracker with a set of RaceDefinitions, containing the + // raceDefinition1 + assertEquals(1, racingEventService.getRaceTrackersByEventMap().size()); Iterator raceTrackerIter = racingEventService.getRaceTrackersByEventMap().get(event).iterator(); - while(raceTrackerIter.hasNext()){ + while (raceTrackerIter.hasNext()) { RaceTracker currentTracker = raceTrackerIter.next(); - assert(currentTracker.equals(raceTracker1)); + assertSame(raceTracker1, currentTracker); } } /** @@ -126,12 +123,12 @@ public class RaceTrackerStartStopTest { assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); // The raceTracker should still exist, but not containing the raceDef2 anymore assertTrue(raceTracker1.getRaces().contains(raceDef1)); - assert raceTracker1.getRaces().size()==1; + assertEquals(1, raceTracker1.getRaces().size()); assertTrue(raceTracker2.getRaces().contains(raceDef1)); - assert raceTracker2.getRaces().size()==1; + assertEquals(1, raceTracker2.getRaces().size()); assertTrue(raceTracker3.getRaces().contains(raceDef1)); assertTrue(raceTracker3.getRaces().contains(raceDef3)); - assert raceTracker1.getRaces().size()==2; + assertEquals(2, raceTracker1.getRaces().size()); } /** * This test methods checks if the {@link RacingEventService#removeRace(Event, RaceDefinition) removeRace} method works correctly if the @@ -154,7 +151,7 @@ public class RaceTrackerStartStopTest { assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); // The raceTracker 3 should exist, and it should contain the raceDefinition3 only assertTrue(raceTracker3.getRaces().contains(raceDef3)); - assert raceTracker3.getRaces().size() == 1; + assertEquals(1, raceTracker3.getRaces().size()); } } From ccd45619e7f6dbcc25c15e2ee6596bfe6a00edeb Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 18:20:12 +0100 Subject: [PATCH 13/17] added an assertion --- .../com/sap/sailing/server/test/RaceTrackerStartStopTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 606453695bd..f81b53ac247 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -89,6 +89,7 @@ public class RaceTrackerStartStopTest { public void testStopTrackingRace() throws MalformedURLException, IOException, InterruptedException { racingEventService.stopTracking(event, raceDef2); // The raceTracker2 and raceTracker3 should currently not be in track mode. + assertTrue(raceTracker1.getIsTracking()); assertFalse(raceTracker2.getIsTracking()); assertFalse(raceTracker3.getIsTracking()); // The RaceTrackersByID map should not contain the trackers raceTracker2 and raceTracker3 anymore From 7186c95aa350e7d9c2fa2c1e9d229fba9f9e2c2d Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 21:38:02 +0100 Subject: [PATCH 14/17] committing failing test that asserts the tracked race is removed from the tracked event --- .../server/test/RaceTrackerStartStopTest.java | 62 +++++++++++++------ 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index f81b53ac247..cec1c80f774 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -2,6 +2,8 @@ package com.sap.sailing.server.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; @@ -21,10 +23,15 @@ import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.EventImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sailing.domain.tracking.TrackedEvent; +import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.RacingEventService; public class RaceTrackerStartStopTest { + private static final String RACENAME3 = "racedef3"; + private static final String RACENAME2 = "racedef2"; + private static final String RACENAME1 = "racedef1"; private final static String EVENTNAME = "TESTEVENT"; private final static String BOATCLASSNAME = "HAPPYBOATCLASS"; @@ -49,27 +56,27 @@ public class RaceTrackerStartStopTest { racingEventService.getEventsByName().put(EVENTNAME, event); racingEventService.getEventsByNameMap().put(EVENTNAME, event); raceTrackerSet = new HashSet(); - raceDef1 = new RaceDefinitionImpl("racedef1", null, boatClass, null); - raceDef2 = new RaceDefinitionImpl("racedef2", null, boatClass, null); - raceDef3 = new RaceDefinitionImpl("racedef3", null, boatClass, null); + raceDef1 = new RaceDefinitionImpl(RACENAME1, null, boatClass, null); + raceDef2 = new RaceDefinitionImpl(RACENAME2, null, boatClass, null); + raceDef3 = new RaceDefinitionImpl(RACENAME3, null, boatClass, null); event.addRace(raceDef1); event.addRace(raceDef2); event.addRace(raceDef3); - Set raceDefinitioSetRace1 = new HashSet(); - raceDefinitioSetRace1.add(raceDef1); - Set raceDefinitioSetRace2 = new HashSet(); - raceDefinitioSetRace2.add(raceDef1); - raceDefinitioSetRace2.add(raceDef2); - Set raceDefinitioSetRace3 = new HashSet(); - raceDefinitioSetRace3.add(raceDef1); - raceDefinitioSetRace3.add(raceDef2); - raceDefinitioSetRace3.add(raceDef3); + Set raceDefinitionSetRace1 = new HashSet(); + raceDefinitionSetRace1.add(raceDef1); + Set raceDefinitionSetRace2 = new HashSet(); + raceDefinitionSetRace2.add(raceDef1); + raceDefinitionSetRace2.add(raceDef2); + Set raceDefinitionSetRace3 = new HashSet(); + raceDefinitionSetRace3.add(raceDef1); + raceDefinitionSetRace3.add(raceDef2); + raceDefinitionSetRace3.add(raceDef3); Long trackerID1 = new Long(1); Long trackerID2 = new Long(2); Long trackerID3 = new Long(3); - raceTracker1 = new RaceTrackerMock(new Long(1), event, raceDefinitioSetRace1, true); - raceTracker2 = new RaceTrackerMock(new Long(2), event, raceDefinitioSetRace2, true); - raceTracker3 = new RaceTrackerMock(new Long(3), event, raceDefinitioSetRace3, true); + raceTracker1 = new RaceTrackerMock(new Long(1), event, raceDefinitionSetRace1, true); + raceTracker2 = new RaceTrackerMock(new Long(2), event, raceDefinitionSetRace2, true); + raceTracker3 = new RaceTrackerMock(new Long(3), event, raceDefinitionSetRace3, true); raceTrackerSet.add(raceTracker1); raceTrackerSet.add(raceTracker2); raceTrackerSet.add(raceTracker3); @@ -113,8 +120,22 @@ public class RaceTrackerStartStopTest { */ @Test public void testRemoveRace() throws MalformedURLException, IOException, InterruptedException { + Event event = racingEventService.getEventByName(EVENTNAME); + TrackedEvent trackedEvent = racingEventService.getTrackedEvent(event); + assertNotNull(event.getRaceByName(RACENAME2)); + assertNotNull(trackedEvent.getExistingTrackedRace(event.getRaceByName(RACENAME2))); racingEventService.removeRace(event, raceDef2); - // The event map should still contain the raceTrackers + // the raceDef2 should be removed from the event, and the corresponding tracked race should be removed + // from the tracked event + assertNull(event.getRaceByName(RACENAME2)); + boolean foundTrackedRaceForRaceDef2 = false; + for (TrackedRace trackedRace : trackedEvent.getTrackedRaces()) { + if (trackedRace.getRace().getName().equals(RACENAME2)) { + foundTrackedRaceForRaceDef2 = true; + } + } + assertFalse(foundTrackedRaceForRaceDef2); + // The trackers map should still contain the raceTrackers assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker1)); assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker2)); assertTrue(racingEventService.getRaceTrackersByEventMap().get(event).contains(raceTracker3)); @@ -122,15 +143,18 @@ public class RaceTrackerStartStopTest { assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); - // The raceTracker should still exist, but not containing the raceDef2 anymore + // The raceTracker should still exist; it shall still contain raceDef1 and raceDef2 because a tracker keeps tracking what it tracks... assertTrue(raceTracker1.getRaces().contains(raceDef1)); assertEquals(1, raceTracker1.getRaces().size()); assertTrue(raceTracker2.getRaces().contains(raceDef1)); - assertEquals(1, raceTracker2.getRaces().size()); + assertTrue(raceTracker2.getRaces().contains(raceDef2)); + assertEquals(2, raceTracker2.getRaces().size()); assertTrue(raceTracker3.getRaces().contains(raceDef1)); + assertTrue(raceTracker3.getRaces().contains(raceDef2)); assertTrue(raceTracker3.getRaces().contains(raceDef3)); - assertEquals(2, raceTracker1.getRaces().size()); + assertEquals(3, raceTracker3.getRaces().size()); } + /** * This test methods checks if the {@link RacingEventService#removeRace(Event, RaceDefinition) removeRace} method works correctly if the * race to be stopped is the last race of a tracker From 29a1e1fedeef15073b773fcdd113cad408549b48 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 21:51:00 +0100 Subject: [PATCH 15/17] adjusted test verdict according to expectations --- .../com/sap/sailing/server/test/RaceTrackerStartStopTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index cec1c80f774..f4713742d24 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -174,9 +174,9 @@ public class RaceTrackerStartStopTest { assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker1)); assertFalse(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker2)); assertTrue(racingEventService.getRaceTrackersByIDMap().containsValue(raceTracker3)); - // The raceTracker 3 should exist, and it should contain the raceDefinition3 only + // The raceTracker 3 should exist, and it should contain all race definitions still assertTrue(raceTracker3.getRaces().contains(raceDef3)); - assertEquals(1, raceTracker3.getRaces().size()); + assertEquals(3, raceTracker3.getRaces().size()); } } From 9bb057966c7c21a1227df35cbb215460993fd853 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 23:20:51 +0100 Subject: [PATCH 16/17] added tracked event/race set-up for tests --- .../sailing/domain/tracking/TrackedEvent.java | 10 +++++++--- .../domain/tracking/impl/TrackedEventImpl.java | 4 +++- .../server/test/RaceTrackerStartStopTest.java | 18 +++++++++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedEvent.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedEvent.java index a44c2bfb1e4..aa7481d19fa 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedEvent.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedEvent.java @@ -23,9 +23,13 @@ public interface TrackedEvent { Iterable getTrackedRaces(BoatClass boatClass); /** - * Creates a {@link TrackedRace} based on the parameter specified and {@link #addTrackedRace(TrackedRace) adds} it to - * this tracked event. Afterwards, calling {@link #getTrackedRace(RaceDefinition) getTrackedRace(raceDefinition)} will - * return the result of this method call. + * Creates a {@link TrackedRace} based on the parameter specified and {@link #addTrackedRace(TrackedRace) adds} it + * to this tracked event. Afterwards, calling {@link #getTrackedRace(RaceDefinition) getTrackedRace(raceDefinition)} + * will return the result of this method call. + * + * @param raceDefinitionSetToUpdate + * if not null, after creating the {@link TrackedRace}, the raceDefinition is + * {@link DynamicRaceDefinitionSet#addRaceDefinition(RaceDefinition) added} to that object. */ TrackedRace createTrackedRace(RaceDefinition raceDefinition, WindStore windStore, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed, diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedEventImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedEventImpl.java index 1817c4faaee..6a1e0f60267 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedEventImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedEventImpl.java @@ -141,7 +141,9 @@ public class TrackedEventImpl implements TrackedEvent { logger.log(Level.INFO, "Creating DynamicTrackedRaceImpl for RaceDefinition "+raceDefinition.getName()); DynamicTrackedRaceImpl result = new DynamicTrackedRaceImpl(this, raceDefinition, windStore, millisecondsOverWhichToAverageWind, millisecondsOverWhichToAverageSpeed); - raceDefinitionSetToUpdate.addRaceDefinition(raceDefinition); + if (raceDefinitionSetToUpdate != null) { + raceDefinitionSetToUpdate.addRaceDefinition(raceDefinition); + } return result; } diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index f4713742d24..4866082748e 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -9,6 +9,7 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.net.MalformedURLException; +import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @@ -17,14 +18,18 @@ import org.junit.Before; import org.junit.Test; import com.sap.sailing.domain.base.BoatClass; +import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.BoatClassImpl; +import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.EventImpl; import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedEvent; import com.sap.sailing.domain.tracking.TrackedRace; +import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.server.RacingEventService; public class RaceTrackerStartStopTest { @@ -54,14 +59,21 @@ public class RaceTrackerStartStopTest { boatClass = new BoatClassImpl(BOATCLASSNAME); event = new EventImpl(EVENTNAME, boatClass); racingEventService.getEventsByName().put(EVENTNAME, event); + TrackedEvent trackedEvent1 = racingEventService.getOrCreateTrackedEvent(event); racingEventService.getEventsByNameMap().put(EVENTNAME, event); raceTrackerSet = new HashSet(); - raceDef1 = new RaceDefinitionImpl(RACENAME1, null, boatClass, null); - raceDef2 = new RaceDefinitionImpl(RACENAME2, null, boatClass, null); - raceDef3 = new RaceDefinitionImpl(RACENAME3, null, boatClass, null); + raceDef1 = new RaceDefinitionImpl(RACENAME1, new CourseImpl("Course1", new ArrayList()), boatClass, new ArrayList()); + raceDef2 = new RaceDefinitionImpl(RACENAME2, new CourseImpl("Course2", new ArrayList()), boatClass, new ArrayList()); + raceDef3 = new RaceDefinitionImpl(RACENAME3, new CourseImpl("Course3", new ArrayList()), boatClass, new ArrayList()); event.addRace(raceDef1); + trackedEvent1.createTrackedRace(raceDef1, /* windStore */ EmptyWindStore.INSTANCE, /* millisecondsOverWhichToAverageWind */ 0l, + /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null); event.addRace(raceDef2); + trackedEvent1.createTrackedRace(raceDef2, /* windStore */ EmptyWindStore.INSTANCE, /* millisecondsOverWhichToAverageWind */ 0l, + /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null); event.addRace(raceDef3); + trackedEvent1.createTrackedRace(raceDef3, /* windStore */ EmptyWindStore.INSTANCE, /* millisecondsOverWhichToAverageWind */ 0l, + /* millisecondsOverWhichToAverageSpeed */ 0l, /* raceDefinitionSetToUpdate */ null); Set raceDefinitionSetRace1 = new HashSet(); raceDefinitionSetRace1.add(raceDef1); Set raceDefinitionSetRace2 = new HashSet(); From 7651b2a01bdfe965c41561ded4199840372bbd7c Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 12 Dec 2011 23:23:51 +0100 Subject: [PATCH 17/17] assert that the event/race/tracked event/tracked race structure is left unchanged by stopTracking --- .../server/test/RaceTrackerStartStopTest.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 4866082748e..67b2a6ffb6c 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -100,13 +100,24 @@ public class RaceTrackerStartStopTest { /** * This test method tests, if the {@link RacingEventService#stopTracking(Event, RaceDefinition) stopTracking} method works correctly. - * @throws MalformedURLException - * @throws IOException - * @throws InterruptedException */ @Test public void testStopTrackingRace() throws MalformedURLException, IOException, InterruptedException { + Event event = racingEventService.getEventByName(EVENTNAME); + TrackedEvent trackedEvent = racingEventService.getTrackedEvent(event); + assertNotNull(event.getRaceByName(RACENAME2)); + assertNotNull(trackedEvent.getExistingTrackedRace(event.getRaceByName(RACENAME2))); racingEventService.stopTracking(event, raceDef2); + // the raceDef2 should still be part of the event, and the corresponding tracked race should still be part + // of the tracked event + assertNotNull(event.getRaceByName(RACENAME2)); + boolean foundTrackedRaceForRaceDef2 = false; + for (TrackedRace trackedRace : trackedEvent.getTrackedRaces()) { + if (trackedRace.getRace().getName().equals(RACENAME2)) { + foundTrackedRaceForRaceDef2 = true; + } + } + assertTrue(foundTrackedRaceForRaceDef2); // The raceTracker2 and raceTracker3 should currently not be in track mode. assertTrue(raceTracker1.getIsTracking()); assertFalse(raceTracker2.getIsTracking()); @@ -126,9 +137,6 @@ public class RaceTrackerStartStopTest { } /** * This test methods checks if the {@link RacingEventService#removeRace(Event, RaceDefinition) removeRace} method works correctly - * @throws MalformedURLException - * @throws IOException - * @throws InterruptedException */ @Test public void testRemoveRace() throws MalformedURLException, IOException, InterruptedException { @@ -170,9 +178,6 @@ public class RaceTrackerStartStopTest { /** * This test methods checks if the {@link RacingEventService#removeRace(Event, RaceDefinition) removeRace} method works correctly if the * race to be stopped is the last race of a tracker - * @throws MalformedURLException - * @throws IOException - * @throws InterruptedException */ @Test public void testRemoveLastRaceOfTracker() throws MalformedURLException, IOException, InterruptedException {