diff --git a/sdk/src/main/java/com/uber/sdk/rides/client/model/Ride.java b/sdk/src/main/java/com/uber/sdk/rides/client/model/Ride.java index f9decca..33df8dc 100644 --- a/sdk/src/main/java/com/uber/sdk/rides/client/model/Ride.java +++ b/sdk/src/main/java/com/uber/sdk/rides/client/model/Ride.java @@ -22,6 +22,8 @@ package com.uber.sdk.rides.client.model; +import com.squareup.moshi.Json; + import javax.annotation.Nullable; /** @@ -31,8 +33,28 @@ */ public class Ride { + /** + * Represents all possible Ride statuses + */ + public enum Status { + @Json(name = "processing") PROCESSING("processing"), + @Json(name = "no_drivers_available") NO_DRIVERS_AVAILABLE("no_drivers_available"), + @Json(name = "accepted") ACCEPTED("accepted"), + @Json(name = "arriving") ARRIVING("arriving"), + @Json(name = "in_progress") IN_PROGRESS("in_progress"), + @Json(name = "driver_canceled") DRIVER_CANCELED("driver_canceled"), + @Json(name = "rider_canceled") RIDER_CANCELED("rider_canceled"), + @Json(name = "completed") COMPLETED("completed"); + + private String value; + + Status(String value) { + this.value = value; + } + } + private String request_id; - private String status; + private Status status; private Driver driver; @Nullable private Integer eta; @@ -52,7 +74,7 @@ public String getRideId() { /** * The status of the ride indicating state. */ - public String getStatus() { + public Status getStatus() { return status; } diff --git a/sdk/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java b/sdk/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java index e539a0e..4716604 100644 --- a/sdk/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java +++ b/sdk/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java @@ -135,7 +135,7 @@ public void testRequestRide_withoutProductId() throws Exception { final Ride ride = service.requestRide(createRideRequest()).execute().body(); - assertThat(ride.getStatus()).isEqualTo("processing"); + assertThat(ride.getStatus()).isEqualTo(Ride.Status.PROCESSING); assertThat(ride.getProductId()).isEqualTo(UBER_X_PRODUCT_ID); assertThat(ride.getRideId()).isNotEmpty(); assertThat(ride.isShared()).isFalse(); @@ -149,7 +149,7 @@ public void testRequestRide_withUberPoolProductId() throws Exception { .willReturn(aResponse().withBodyFile("requests_current_UberPool.json"))); final Ride ride = service.requestRide(createUberPoolRideRequest()).execute().body(); - assertThat(ride.getStatus()).isEqualTo("processing"); + assertThat(ride.getStatus()).isEqualTo(Ride.Status.PROCESSING); assertThat(ride.getProductId()).isEqualTo(UBER_POOL_PRODUCT_ID); assertThat(ride.getRideId()).isNotEmpty();