From d5e30acbfb9bb1b72fd327affdae77adc4d0bab4 Mon Sep 17 00:00:00 2001 From: Piotr Jagielski Date: Mon, 31 Oct 2016 11:47:53 +0100 Subject: [PATCH] BaseUrl in SessionConfiguration --- .../sdk/core/client/SessionConfiguration.java | 18 ++++++++++++++++-- .../core/client/SessionConfigurationTest.java | 12 ++++++++++-- .../client/services/RidesServiceTest.java | 1 - 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/uber-core/src/main/java/com/uber/sdk/core/client/SessionConfiguration.java b/uber-core/src/main/java/com/uber/sdk/core/client/SessionConfiguration.java index 63f8514..169bd4b 100644 --- a/uber-core/src/main/java/com/uber/sdk/core/client/SessionConfiguration.java +++ b/uber-core/src/main/java/com/uber/sdk/core/client/SessionConfiguration.java @@ -83,6 +83,7 @@ public static class Builder { private Collection scopes; private Collection customScopes; private Locale locale; + private String baseUrl; /** * The Uber API requires a registered clientId to be sent along with API requests and Deeplinks. @@ -142,6 +143,11 @@ public Builder setEnvironment(@Nonnull Environment environment) { return this; } + public Builder setBaseUrl(@Nonnull String url) { + this.baseUrl = url; + return this; + } + /** * Sets the Scope Collection to be used when requesting authentication * @@ -208,6 +214,7 @@ public SessionConfiguration build() { redirectUri, DEFAULT, environment, + baseUrl, scopes, customScopes, locale); @@ -220,6 +227,7 @@ public SessionConfiguration build() { private final String redirectUri; private final EndpointRegion endpointRegion; private final Environment environment; + private final String baseUrl; private final Collection scopes; private final Collection customScopes; private final Locale locale; @@ -230,6 +238,7 @@ protected SessionConfiguration(@Nonnull String clientId, @Nonnull String redirectUri, @Nonnull EndpointRegion endpointRegion, @Nonnull Environment environment, + String baseUrl, @Nonnull Collection scopes, @Nonnull Collection customScopes, @Nonnull Locale locale) { @@ -239,6 +248,7 @@ protected SessionConfiguration(@Nonnull String clientId, this.redirectUri = redirectUri; this.endpointRegion = endpointRegion; this.environment = environment; + this.baseUrl = baseUrl; this.scopes = scopes; this.customScopes = customScopes; this.locale = locale; @@ -304,7 +314,9 @@ public EndpointRegion getEndpointRegion() { */ @Nonnull public String getEndpointHost() { - return String.format("https://%s.%s", environment.subDomain, DEFAULT.getDomain()); + return baseUrl != null ? + baseUrl : + String.format("https://%s.%s", environment.subDomain, DEFAULT.getDomain()); } /** @@ -312,7 +324,9 @@ public String getEndpointHost() { */ @Nonnull public String getLoginHost() { - return String.format("https://login.%s", DEFAULT.getDomain()); + return baseUrl != null ? + baseUrl : + String.format("https://login.%s", DEFAULT.getDomain()); } /** diff --git a/uber-core/src/test/java/com/uber/sdk/core/client/SessionConfigurationTest.java b/uber-core/src/test/java/com/uber/sdk/core/client/SessionConfigurationTest.java index c5bce6f..bbae58f 100644 --- a/uber-core/src/test/java/com/uber/sdk/core/client/SessionConfigurationTest.java +++ b/uber-core/src/test/java/com/uber/sdk/core/client/SessionConfigurationTest.java @@ -23,7 +23,6 @@ package com.uber.sdk.core.client; import com.uber.sdk.core.auth.Scope; - import org.junit.Test; import java.util.Arrays; @@ -128,4 +127,13 @@ public void buildSession_whenSandboxEnv_shouldGiveSandboxEndpointHost() throws E .setEnvironment(SANDBOX).build(); assertEquals("https://sandbox-api.uber.com", sessionConfig.getEndpointHost()); } -} \ No newline at end of file + + @Test + public void buildSession_whenCustomEnvUrl_shouldGiveCustomEndpointHost() throws Exception { + SessionConfiguration sessionConfig = new SessionConfiguration.Builder() + .setBaseUrl("http://localhost:8888/uber-mock") + .setClientId("clientId") + .build(); + assertEquals("http://localhost:8888/uber-mock", sessionConfig.getEndpointHost()); + } +} diff --git a/uber-rides/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java b/uber-rides/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java index 8e6cd87..801aa8a 100644 --- a/uber-rides/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java +++ b/uber-rides/src/test/java/com/uber/sdk/rides/client/services/RidesServiceTest.java @@ -3,7 +3,6 @@ import com.squareup.moshi.Moshi; import com.uber.sdk.core.client.internal.BigDecimalAdapter; import com.uber.sdk.rides.WireMockTest; -import com.uber.sdk.rides.client.services.RidesService; import com.uber.sdk.rides.client.model.Product; import com.uber.sdk.rides.client.model.Ride; import com.uber.sdk.rides.client.model.RideEstimate;