bug4942: wrap json result of leaderboard setTrackingTimes and added test

This commit is contained in:
Thomas Wiese committed 2019-07-05 10:53:07 +02:00
1 parent 4fd03f6a7e
commit 87dd95d4d0
2 files changed
+34 -2

No files matched your search

@@ -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<String, String> 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");
}
}
}
@@ -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());
}
}