From c66198f56e8c57324a3b671fa6ab73daca95f42c Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Mon, 12 Dec 2022 20:19:09 +0100 Subject: [PATCH] Add base URL interceptor test --- .../datasource/impl/BaseUrlInterceptor.kt | 2 +- .../datasource/impl/BaseUrlInterceptorTest.kt | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 datasource/src/test/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptorTest.kt diff --git a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptor.kt b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptor.kt index 5df239c..4b40e26 100644 --- a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptor.kt +++ b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptor.kt @@ -14,8 +14,8 @@ import javax.inject.Singleton @Singleton class BaseUrlInterceptor @Inject constructor( - private val serverUrlProviderProvider: Provider, private val logger: Logger, + private val serverUrlProviderProvider: Provider, ) : LocalInterceptor { private val serverUrlProvider: ServerUrlProvider diff --git a/datasource/src/test/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptorTest.kt b/datasource/src/test/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptorTest.kt new file mode 100644 index 0000000..539bef0 --- /dev/null +++ b/datasource/src/test/kotlin/gq/kirmanak/mealient/datasource/impl/BaseUrlInterceptorTest.kt @@ -0,0 +1,47 @@ +package gq.kirmanak.mealient.datasource.impl + +import com.google.common.truth.Truth.assertThat +import gq.kirmanak.mealient.datasource.ServerUrlProvider +import gq.kirmanak.mealient.test.BaseUnitTest +import io.mockk.coEvery +import io.mockk.every +import io.mockk.impl.annotations.MockK +import io.mockk.mockk +import io.mockk.slot +import okhttp3.Interceptor +import okhttp3.Request +import org.junit.Before +import org.junit.Test + +class BaseUrlInterceptorTest : BaseUnitTest() { + + private lateinit var subject: Interceptor + + @MockK + lateinit var serverUrlProvider: ServerUrlProvider + + @MockK(relaxUnitFun = true) + lateinit var chain: Interceptor.Chain + + @Before + override fun setUp() { + super.setUp() + subject = BaseUrlInterceptor(logger) { serverUrlProvider } + } + + @Test + fun `when intercept is called expect it changes the url`() { + val requestSlot = slot() + every { chain.proceed(capture(requestSlot)) } returns mockk() + every { chain.request() } returns buildRequest() + coEvery { serverUrlProvider.getUrl() } returns "https://mealie:3241/" + subject.intercept(chain) + assertThat(requestSlot.captured.url.toString()).isEqualTo("https://mealie:3241/") + } + + private fun buildRequest( + url: String = "http://localhost", + ) = Request.Builder().apply { + url(url) + }.build() +} \ No newline at end of file