diff --git a/CHANGELOG.md b/CHANGELOG.md index 937430a5d..a408166e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ Mapbox welcomes participation and contributions from everyone. ### main +- Fixed malformed URL that resulted from previous inclusion of `contours_meters` as an Isochrone option. [#1599](https://github.com/mapbox/mapbox-java/pull/1599) - Fixed an issue where Isochrone API's `contours_meters` required at least two input values, instead of only one. diff --git a/services-isochrone/src/main/java/com/mapbox/api/isochrone/MapboxIsochrone.java b/services-isochrone/src/main/java/com/mapbox/api/isochrone/MapboxIsochrone.java index 442e21987..32b61f430 100644 --- a/services-isochrone/src/main/java/com/mapbox/api/isochrone/MapboxIsochrone.java +++ b/services-isochrone/src/main/java/com/mapbox/api/isochrone/MapboxIsochrone.java @@ -87,8 +87,8 @@ protected Call initializeCall() { public static Builder builder() { return new AutoValue_MapboxIsochrone.Builder() .baseUrl(Constants.BASE_API_URL) - .contoursMinutes("") - .contoursMeters("") + .contoursMinutes(null) + .contoursMeters(null) .user(IsochroneCriteria.PROFILE_DEFAULT_USER); } @@ -108,7 +108,7 @@ public static Builder builder() { @NonNull abstract String coordinates(); - @NonNull + @Nullable abstract String contoursMinutes(); @Nullable @@ -268,7 +268,7 @@ public Builder addContoursMeters(Integer... listOfMeterValues) { */ // Required for matching with MapboxIsochrone addContoursMinutes() method. @SuppressWarnings("WeakerAccess") - abstract Builder contoursMinutes(@NonNull String stringListOfMinuteValues); + abstract Builder contoursMinutes(@Nullable String stringListOfMinuteValues); /** * A single String which is a comma-separated list of values(s) in meters @@ -281,7 +281,7 @@ public Builder addContoursMeters(Integer... listOfMeterValues) { * meters which represent each contour * @return this builder for chaining options together */ - abstract Builder contoursMeters(@NonNull String stringListOfMeterValues); + abstract Builder contoursMeters(@Nullable String stringListOfMeterValues); /** * A list of separate String which has a list of comma-separated diff --git a/services-isochrone/src/test/java/com/mapbox/api/isochrone/MapboxIsochroneTest.java b/services-isochrone/src/test/java/com/mapbox/api/isochrone/MapboxIsochroneTest.java index 82b999f83..ec4242e7a 100644 --- a/services-isochrone/src/test/java/com/mapbox/api/isochrone/MapboxIsochroneTest.java +++ b/services-isochrone/src/test/java/com/mapbox/api/isochrone/MapboxIsochroneTest.java @@ -153,6 +153,25 @@ public void build_usingIntegerListForMinutes() throws ServicesException, IOExcep assertTrue(requestUrlString.contains("contours_minutes=14" + commaEquivalent + "36" + commaEquivalent + "52")); + assertFalse(requestUrlString.contains("contours_meters")); + } + + @Test + public void build_usingIntegerListForMeters() throws ServicesException, IOException { + MapboxIsochrone client = MapboxIsochrone.builder() + .accessToken(ACCESS_TOKEN) + .coordinates(testPoint) + .addContoursMeters(14,36,52) + .profile(testProfile) + .baseUrl(mockUrl.toString()) + .build(); + String requestUrlString = client.cloneCall().request().url().toString(); + + System.out.print(requestUrlString); + + assertTrue(requestUrlString.contains("contours_meters=14" + commaEquivalent + + "36" + commaEquivalent + "52")); + assertFalse(requestUrlString.contains("contours_minutes")); } @Test @@ -200,6 +219,7 @@ public void build_usingRawStringForMinutes() throws ServicesException, IOExcepti String requestUrlString = client.cloneCall().request().url().toString(); assertTrue(requestUrlString.contains("contours_minutes=5" + commaEquivalent + "30" + commaEquivalent + "55")); + assertFalse(requestUrlString.contains("contours_meters")); } @Test