diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/LeaderboardApi.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/LeaderboardApi.java index 9ae1a3a11e3..d44424d1273 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/LeaderboardApi.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/LeaderboardApi.java @@ -9,6 +9,7 @@ import org.json.simple.JSONArray; import org.json.simple.JSONObject; import com.sap.sailing.selenium.api.core.ApiContext; +import com.sap.sailing.selenium.api.core.JsonWrapper; public class LeaderboardApi { @@ -38,14 +39,14 @@ public class LeaderboardApi { return new DeviceMappingRequest(ctx, leaderboardName); } - public JSONObject setTrackingTimes(ApiContext ctx, String leaderboardName, String raceColumnName, String fleetName, + public TrackingTimes setTrackingTimes(ApiContext ctx, String leaderboardName, String raceColumnName, String fleetName, Long startTime, Long endTime) { final Map queryParams = new TreeMap<>(); queryParams.put("race_column", raceColumnName); queryParams.put("fleet", fleetName); queryParams.put("startoftrackingasmillis", startTime != null ? startTime.toString() : null); queryParams.put("endoftrackingasmillis", endTime != null ? endTime.toString() : null); - return ctx.post(toUrl(SET_TRACKING_TIMES_URL, leaderboardName), queryParams); + return new TrackingTimes(ctx.post(toUrl(SET_TRACKING_TIMES_URL, leaderboardName), queryParams)); } public JSONObject startRaceLogTracking(ApiContext ctx, String leaderboardName, String raceColumnName, @@ -116,4 +117,19 @@ public class LeaderboardApi { } + public class TrackingTimes extends JsonWrapper { + + private TrackingTimes(JSONObject json) { + super(json); + } + + public Long getStartOfTracking() { + return get("startoftracking"); + } + + public Long getEndOfTracking() { + return get("endoftracking"); + } + } + } diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/LeaderboardApiTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/LeaderboardApiTest.java index c3784544ee9..49c998d585e 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/LeaderboardApiTest.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/LeaderboardApiTest.java @@ -18,7 +18,9 @@ import com.sap.sailing.selenium.api.core.ApiContext; import com.sap.sailing.selenium.api.event.EventApi; import com.sap.sailing.selenium.api.event.LeaderboardApi; import com.sap.sailing.selenium.api.event.LeaderboardApi.DeviceMappingRequest; +import com.sap.sailing.selenium.api.event.LeaderboardApi.TrackingTimes; import com.sap.sailing.selenium.api.regatta.Competitor; +import com.sap.sailing.selenium.api.regatta.RaceColumn; import com.sap.sailing.selenium.api.regatta.RegattaApi; import com.sap.sailing.selenium.test.AbstractSeleniumTest; @@ -73,4 +75,18 @@ public class LeaderboardApiTest extends AbstractSeleniumTest { @SuppressWarnings("unused") // TODO: check result JSONObject mappingEnd = request.endDeviceMapping(currentTimeMillis()); } + + @Test + public void testSetTrackingTimes() throws Exception { + final ApiContext ctx = createAdminApiContext(getContextRoot(), SERVER_CONTEXT); + eventApi.createEvent(ctx, LEADERBOARD_NAME, BOATCLASSNAME, CLOSED, "default"); + final RaceColumn race = regattaApi.addRaceColumn(ctx, LEADERBOARD_NAME, null, 1)[0]; + final Long startTime = currentTimeMillis(); + final Long endTime = currentTimeMillis() + 10000L; + leaderboardApi.startRaceLogTracking(ctx, LEADERBOARD_NAME, race.getRaceName(), "Default"); + TrackingTimes trackingTimes = leaderboardApi.setTrackingTimes(ctx, LEADERBOARD_NAME, race.getRaceName(), + "Default", startTime, endTime); + assertEquals("read: startTime is different", startTime, trackingTimes.getStartOfTracking()); + assertEquals("read: endTime is different", endTime, trackingTimes.getEndOfTracking()); + } }