mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-08 20:12:23 +00:00
bug4942 Extracted JSON wrapper class for GPS fixes
This commit is contained in:
1 parent
99458d6ee9
commit
b157e31de2
5 files changed
+73
-51
No files matched your search
@@ -0,0 +1,34 @@
|
||||
package com.sap.sailing.selenium.api.core;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class GpsFix extends JsonWrapper {
|
||||
|
||||
private static final String ATTRIBUTE_LONGITUDE = "longitude";
|
||||
private static final String ATTRIBUTE_LATITUDE = "latitude";
|
||||
private static final String ATTRIBUTE_TIMESTAMP = "timestamp";
|
||||
|
||||
public static GpsFix createFix(final Double longitude, final Double latitude, final Long timestamp) {
|
||||
return new GpsFix(longitude, latitude, timestamp);
|
||||
}
|
||||
|
||||
GpsFix(final Double longitude, final Double latitude, final Long timestamp) {
|
||||
super(new JSONObject());
|
||||
getJson().put(ATTRIBUTE_LONGITUDE, longitude);
|
||||
getJson().put(ATTRIBUTE_LATITUDE, latitude);
|
||||
getJson().put(ATTRIBUTE_TIMESTAMP, timestamp);
|
||||
}
|
||||
|
||||
public final Double getLongitude() {
|
||||
return get(ATTRIBUTE_LONGITUDE);
|
||||
}
|
||||
|
||||
public final Double getLatitude() {
|
||||
return get(ATTRIBUTE_LATITUDE);
|
||||
}
|
||||
|
||||
public final Long getTimestamp() {
|
||||
return get(ATTRIBUTE_TIMESTAMP);
|
||||
}
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.sap.sailing.selenium.api.core;
|
||||
|
||||
public class GpsFixMoving extends GpsFix {
|
||||
|
||||
private static final String ATTRIBUTE_SPEED = "speed";
|
||||
private static final String ATTRIBUTE_COURSE = "course";
|
||||
|
||||
public static GpsFixMoving createFix(final Double longitude, final Double latitude, final Long timestamp,
|
||||
final Double speed, final Double course) {
|
||||
return new GpsFixMoving(longitude, latitude, timestamp, speed, course);
|
||||
}
|
||||
|
||||
GpsFixMoving(final Double longitude, final Double latitude, final Long timestamp, final Double speed,
|
||||
final Double course) {
|
||||
super(longitude, latitude, timestamp);
|
||||
getJson().put(ATTRIBUTE_SPEED, speed);
|
||||
getJson().put(ATTRIBUTE_COURSE, course);
|
||||
}
|
||||
|
||||
public final Double getSpeed() {
|
||||
return get(ATTRIBUTE_SPEED);
|
||||
}
|
||||
|
||||
public final Double getCourse() {
|
||||
return get(ATTRIBUTE_COURSE);
|
||||
}
|
||||
|
||||
}
|
||||
+5
-47
@@ -6,19 +6,19 @@ 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.GpsFix;
|
||||
import com.sap.sailing.selenium.api.core.JsonWrapper;
|
||||
|
||||
public class GpsFixApi {
|
||||
|
||||
private static final String POST_FIX_URL = "/api/v1/gps_fixes";
|
||||
|
||||
public GpsFixResponse postGpsFix(ApiContext ctx, UUID deviceUuid, GpsFix... fixes) {
|
||||
JSONObject gpsFix = new JSONObject();
|
||||
public GpsFixResponse postGpsFix(final ApiContext ctx, final UUID deviceUuid, final GpsFix... fixes) {
|
||||
final JSONObject gpsFix = new JSONObject();
|
||||
gpsFix.put("deviceUuid", deviceUuid != null ? deviceUuid.toString(): null);
|
||||
JSONArray fixesArray = new JSONArray();
|
||||
final JSONArray fixesArray = new JSONArray();
|
||||
gpsFix.put("fixes", fixesArray);
|
||||
GpsFixResponse gpsFixResponse = new GpsFixResponse(ctx.post(POST_FIX_URL, null, gpsFix));
|
||||
return gpsFixResponse;
|
||||
return new GpsFixResponse(ctx.post(POST_FIX_URL, null, gpsFix));
|
||||
}
|
||||
|
||||
public class GpsFixResponse extends JsonWrapper {
|
||||
@@ -32,48 +32,6 @@ public class GpsFixApi {
|
||||
}
|
||||
}
|
||||
|
||||
public static JSONObject createGpsFixJson(Double longitude, Double latitude, Long timestamp, Double speed,
|
||||
Double course) {
|
||||
final JSONObject json = new JSONObject();
|
||||
json.put("longitude", longitude);
|
||||
json.put("latitude", latitude);
|
||||
json.put("timestamp", timestamp);
|
||||
json.put("speed", speed);
|
||||
json.put("course", course);
|
||||
return json;
|
||||
}
|
||||
|
||||
public class GpsFix extends JsonWrapper {
|
||||
|
||||
public GpsFix(JSONObject json) {
|
||||
super(json);
|
||||
}
|
||||
|
||||
public GpsFix(Double longitude, Double latitude, Long timeMillis, Double speed, Double course) {
|
||||
super(createGpsFixJson(longitude, latitude, timeMillis, speed, course));
|
||||
}
|
||||
|
||||
public Double getLongitude() {
|
||||
return get("longitude");
|
||||
}
|
||||
|
||||
public Double getLatitude() {
|
||||
return get("latitude");
|
||||
}
|
||||
|
||||
public Long getTimestamp() {
|
||||
return get("timestamp");
|
||||
}
|
||||
|
||||
public Double getSpeed() {
|
||||
return get("speed");
|
||||
}
|
||||
|
||||
public Double getCourse() {
|
||||
return get("course");
|
||||
}
|
||||
}
|
||||
|
||||
public class ManeuverChanged extends JsonWrapper {
|
||||
|
||||
public ManeuverChanged(JSONObject json) {
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package com.sap.sailing.selenium.api.test;
|
||||
|
||||
import static com.sap.sailing.selenium.api.core.ApiContext.SERVER_CONTEXT;
|
||||
import static com.sap.sailing.selenium.api.core.ApiContext.createApiContext;
|
||||
import static com.sap.sailing.selenium.api.core.GpsFixMoving.createFix;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.UUID;
|
||||
@@ -10,8 +11,8 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.selenium.api.core.ApiContext;
|
||||
import com.sap.sailing.selenium.api.core.GpsFixMoving;
|
||||
import com.sap.sailing.selenium.api.event.GpsFixApi;
|
||||
import com.sap.sailing.selenium.api.event.GpsFixApi.GpsFix;
|
||||
import com.sap.sailing.selenium.api.event.GpsFixApi.GpsFixResponse;
|
||||
import com.sap.sailing.selenium.test.AbstractSeleniumTest;
|
||||
|
||||
@@ -34,7 +35,7 @@ public class GpsFixApiTest extends AbstractSeleniumTest {
|
||||
@Test
|
||||
public void testGpsFix() {
|
||||
final ApiContext ctx = createApiContext(getContextRoot(), SERVER_CONTEXT, "admin", "admin");
|
||||
final GpsFix gpsFix = gpsFixApi.new GpsFix(49.12, 8.599, System.currentTimeMillis(), 10.0, 180.0);
|
||||
final GpsFixMoving gpsFix = createFix(49.12, 8.599, System.currentTimeMillis(), 10.0, 180.0);
|
||||
final GpsFixResponse gpsFixResponse = gpsFixApi.postGpsFix(ctx, UUID.randomUUID(), gpsFix);
|
||||
assertTrue("Result should be empty.", gpsFixResponse.isEmpty());
|
||||
}
|
||||
|
||||
+3
-2
@@ -5,6 +5,7 @@ import static com.sap.sailing.selenium.api.core.ApiContext.SECURITY_CONTEXT;
|
||||
import static com.sap.sailing.selenium.api.core.ApiContext.SERVER_CONTEXT;
|
||||
import static com.sap.sailing.selenium.api.core.ApiContext.createAnonymousApiContext;
|
||||
import static com.sap.sailing.selenium.api.core.ApiContext.createApiContext;
|
||||
import static com.sap.sailing.selenium.api.core.GpsFixMoving.createFix;
|
||||
import static com.sap.sailing.selenium.pages.adminconsole.AdminConsolePage.goToPage;
|
||||
import static java.lang.System.currentTimeMillis;
|
||||
import static java.util.UUID.randomUUID;
|
||||
@@ -80,9 +81,9 @@ public class OpenRegattaTest extends AbstractSeleniumTest {
|
||||
for (double i = 0.0; i < 100.0; i++) {
|
||||
final Double longitude = 9.12 + i / 1000.0, latitude = .599 + i / 1000.0, speed = 10.0, course = 180.0;
|
||||
gpsFixApi.postGpsFix(ownerCtx, deviceUuidCompetitor1,
|
||||
gpsFixApi.new GpsFix(longitude, latitude, currentTimeMillis(), speed, course));
|
||||
createFix(longitude, latitude, currentTimeMillis(), speed, course));
|
||||
gpsFixApi.postGpsFix(sailorCtx, deviceUuidCompetitor2,
|
||||
gpsFixApi.new GpsFix(longitude, latitude, currentTimeMillis(), speed, course));
|
||||
createFix(longitude, latitude, currentTimeMillis(), speed, course));
|
||||
}
|
||||
|
||||
leaderboardApi.deviceMappingsEnd(ownerCtx, EVENT_NAME, competitor1.getId(), competitor1.getBoat().getId(),
|
||||
|
||||
Reference in new issue
Block a user