From b157e31de26ee9e0146ecc69a1a0bc134665735e Mon Sep 17 00:00:00 2001 From: Benjamin Barth Date: Tue, 23 Apr 2019 12:30:33 +0200 Subject: [PATCH] bug4942 Extracted JSON wrapper class for GPS fixes --- .../sap/sailing/selenium/api/core/GpsFix.java | 34 ++++++++++++ .../selenium/api/core/GpsFixMoving.java | 28 ++++++++++ .../sailing/selenium/api/event/GpsFixApi.java | 52 ++----------------- .../selenium/api/test/GpsFixApiTest.java | 5 +- .../selenium/api/test/OpenRegattaTest.java | 5 +- 5 files changed, 73 insertions(+), 51 deletions(-) create mode 100644 java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFix.java create mode 100644 java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFixMoving.java diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFix.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFix.java new file mode 100644 index 00000000000..46b924441ea --- /dev/null +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFix.java @@ -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); + } + +} diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFixMoving.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFixMoving.java new file mode 100644 index 00000000000..6308f5eb820 --- /dev/null +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/core/GpsFixMoving.java @@ -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); + } + +} diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/GpsFixApi.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/GpsFixApi.java index 60d5b66b7d9..31fe236ff05 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/GpsFixApi.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/event/GpsFixApi.java @@ -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) { diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/GpsFixApiTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/GpsFixApiTest.java index 1e85d2be514..31034f6f0fa 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/GpsFixApiTest.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/GpsFixApiTest.java @@ -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()); } diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/OpenRegattaTest.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/OpenRegattaTest.java index 518048113d4..b9a765af37d 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/OpenRegattaTest.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/test/OpenRegattaTest.java @@ -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(),