Skip to content

Commit 5740e32

Browse files
author
Pablo Guardiola
authored
fix walking options serialization to match what the service expects / generates (#1028)
1 parent 7120a50 commit 5740e32

4 files changed

Lines changed: 45 additions & 6 deletions

File tree

services-directions/src/main/java/com/mapbox/api/directions/v5/WalkingOptions.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.google.gson.Gson;
88
import com.google.gson.GsonBuilder;
99
import com.google.gson.TypeAdapter;
10+
import com.google.gson.annotations.SerializedName;
1011

1112
/**
1213
* Class for specifying options for use with the walking profile.
@@ -22,6 +23,7 @@ public abstract class WalkingOptions {
2223
* @return walkingSpeed in meters per second
2324
* @since 4.8.0
2425
*/
26+
@SerializedName("walking_speed")
2527
@Nullable
2628
public abstract Double walkingSpeed();
2729

@@ -34,6 +36,7 @@ public abstract class WalkingOptions {
3436
* @return walkwayBias bias to prefer or avoid walkways
3537
* @since 4.8.0
3638
*/
39+
@SerializedName("walkway_bias")
3740
@Nullable
3841
public abstract Double walkwayBias();
3942

@@ -45,6 +48,7 @@ public abstract class WalkingOptions {
4548
* @return alleyBias bias to prefer or avoid alleys
4649
* @since 4.8.0
4750
*/
51+
@SerializedName("alley_bias")
4852
@Nullable
4953
public abstract Double alleyBias();
5054

services-directions/src/test/java/com/mapbox/api/directions/v5/MapboxDirectionsTest.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,39 @@ public void build_originDestinationGetAddedToListCorrectly() throws Exception {
180180
}
181181

182182
@Test
183-
public void build_walkingOptions() {
183+
public void build_walkingWalkingSpeedOptions() {
184184
MapboxDirections directions = MapboxDirections.builder()
185185
.destination(Point.fromLngLat(13.4930, 9.958))
186186
.origin(Point.fromLngLat(1.234, 2.345))
187187
.accessToken(ACCESS_TOKEN)
188188
.profile(DirectionsCriteria.PROFILE_WALKING)
189-
.walkingOptions(WalkingOptions.builder().alleyBias(2d).build())
189+
.walkingOptions(WalkingOptions.builder().walkingSpeed(1d).build())
190190
.build();
191-
assertTrue(directions.cloneCall().request().url().toString().contains("alley_bias=2.0"));
191+
assertTrue(directions.cloneCall().request().url().toString().contains("walking_speed=1.0"));
192+
}
193+
194+
@Test
195+
public void build_walkingWalkwayBiasOptions() {
196+
MapboxDirections directions = MapboxDirections.builder()
197+
.destination(Point.fromLngLat(13.4930, 9.958))
198+
.origin(Point.fromLngLat(1.234, 2.345))
199+
.accessToken(ACCESS_TOKEN)
200+
.profile(DirectionsCriteria.PROFILE_WALKING)
201+
.walkingOptions(WalkingOptions.builder().walkwayBias(1d).build())
202+
.build();
203+
assertTrue(directions.cloneCall().request().url().toString().contains("walkway_bias=1.0"));
204+
}
205+
206+
@Test
207+
public void build_walkingAlleyBiasOptions() {
208+
MapboxDirections directions = MapboxDirections.builder()
209+
.destination(Point.fromLngLat(13.4930, 9.958))
210+
.origin(Point.fromLngLat(1.234, 2.345))
211+
.accessToken(ACCESS_TOKEN)
212+
.profile(DirectionsCriteria.PROFILE_WALKING)
213+
.walkingOptions(WalkingOptions.builder().alleyBias(1d).build())
214+
.build();
215+
assertTrue(directions.cloneCall().request().url().toString().contains("alley_bias=1.0"));
192216
}
193217

194218
@Test

services-directions/src/test/java/com/mapbox/api/directions/v5/models/RouteOptionsTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,8 @@ public void fromJson() {
245245
"\"voice_instructions\": true," +
246246
"\"banner_instructions\": true," +
247247
"\"voice_units\": \"imperial\"," +
248-
"\"uuid\": \"uuid1\"" +
248+
"\"uuid\": \"uuid1\"," +
249+
"\"walkingOptions\": { \"walking_speed\": 1.0, \"walkway_bias\": 0.6, \"alley_bias\": 0.7 }" +
249250
"}";
250251

251252
RouteOptions routeOptions = RouteOptions.fromJson(jsonString);
@@ -267,6 +268,9 @@ public void fromJson() {
267268
assertEquals(true, routeOptions.bannerInstructions());
268269
assertEquals("imperial", routeOptions.voiceUnits());
269270
assertEquals("uuid1", routeOptions.requestUuid());
271+
assertEquals(1.0, routeOptions.walkingOptions().walkingSpeed(), 0.1);
272+
assertEquals(0.6, routeOptions.walkingOptions().walkwayBias(), 0.1);
273+
assertEquals(0.7, routeOptions.walkingOptions().alleyBias(), 0.1);
270274
}
271275

272276
@Test
@@ -290,6 +294,11 @@ public void toJson() {
290294
.bannerInstructions(true)
291295
.voiceUnits("imperial")
292296
.requestUuid("uuid1")
297+
.walkingOptions(WalkingOptions.builder()
298+
.walkingSpeed(1.0)
299+
.walkwayBias(0.6)
300+
.alleyBias(0.7)
301+
.build())
293302
.build();
294303

295304
String jsonString = routeOptions.toJson();
@@ -311,7 +320,9 @@ public void toJson() {
311320
"\"voice_instructions\": true," +
312321
"\"banner_instructions\": true," +
313322
"\"voice_units\": \"imperial\"," +
314-
"\"uuid\": \"uuid1\"}";
323+
"\"uuid\": \"uuid1\"," +
324+
"\"walkingOptions\": { \"walking_speed\": 1.0, \"walkway_bias\": 0.6, \"alley_bias\": 0.7 }" +
325+
"}";
315326
compareJson(expectedJsonString, jsonString);
316327
}
317328
}

services-directions/src/test/java/com/mapbox/api/directions/v5/models/WalkingOptionsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import static org.junit.Assert.assertEquals;
99

1010
public class WalkingOptionsTest extends TestUtils {
11-
private static final String JSON = "{\"walkingSpeed\":1.0,\"walkwayBias\":0.6,\"alleyBias\":0" +
11+
private static final String JSON = "{\"walking_speed\":1.0,\"walkway_bias\":0.6,\"alley_bias\":0" +
1212
".7}";
1313

1414
@Test

0 commit comments

Comments
 (0)