From e504a2c591fc556f29580901d43635a78358b867 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 17 Dec 2020 12:06:14 +0530 Subject: [PATCH] model: don't unit test against the live server Signed-off-by: Harsh Shandilya --- .../dev/msfjarvis/lobsters/injection/ApiModule.kt | 10 +++++++++- .../msfjarvis/lobsters/injection/BaseUrlQualifier.kt | 11 +++++++++++ .../msfjarvis/lobsters/data/api/LobstersApiTest.kt | 3 ++- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 model/src/main/java/dev/msfjarvis/lobsters/injection/BaseUrlQualifier.kt diff --git a/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt b/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt index 791f6bd4..9b46ae60 100644 --- a/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt +++ b/model/src/main/java/dev/msfjarvis/lobsters/injection/ApiModule.kt @@ -15,6 +15,13 @@ import retrofit2.create @Module @InstallIn(ActivityComponent::class) object ApiModule { + + @Provides + @BaseUrlQualifier + fun provideBaseUrl(): String { + return LobstersApi.BASE_URL + } + @Provides fun provideClient(): OkHttpClient { return OkHttpClient.Builder() @@ -29,10 +36,11 @@ object ApiModule { fun provideRetrofit( client: Lazy, moshi: Lazy, + @BaseUrlQualifier baseUrl: String ): Retrofit { return Retrofit.Builder() .client(client.get()) - .baseUrl(LobstersApi.BASE_URL) + .baseUrl(baseUrl) .addConverterFactory(MoshiConverterFactory.create(moshi.get())) .build() } diff --git a/model/src/main/java/dev/msfjarvis/lobsters/injection/BaseUrlQualifier.kt b/model/src/main/java/dev/msfjarvis/lobsters/injection/BaseUrlQualifier.kt new file mode 100644 index 00000000..2874f257 --- /dev/null +++ b/model/src/main/java/dev/msfjarvis/lobsters/injection/BaseUrlQualifier.kt @@ -0,0 +1,11 @@ +package dev.msfjarvis.lobsters.injection + +import javax.inject.Qualifier + +/** + * Qualifier for a string value that needs to be provided to the [ApiModule.provideRetrofit] method + * as the base URL of our API. + */ +@Qualifier +@Retention(AnnotationRetention.RUNTIME) +annotation class BaseUrlQualifier diff --git a/model/src/test/java/dev/msfjarvis/lobsters/data/api/LobstersApiTest.kt b/model/src/test/java/dev/msfjarvis/lobsters/data/api/LobstersApiTest.kt index 2dfe6a26..aec1f23d 100644 --- a/model/src/test/java/dev/msfjarvis/lobsters/data/api/LobstersApiTest.kt +++ b/model/src/test/java/dev/msfjarvis/lobsters/data/api/LobstersApiTest.kt @@ -22,7 +22,8 @@ class LobstersApiTest { private val okHttp = ApiModule.provideClient() private val retrofit = ApiModule.provideRetrofit( { okHttp }, - { MoshiModule.provideMoshi() } + { MoshiModule.provideMoshi() }, + "http://localhost:8080/" ) private val apiClient = ApiModule.provideApi(retrofit)