Add base URL interceptor test

This commit is contained in:
Kirill Kamakin
2022-12-12 20:19:09 +01:00
parent 57ce307cf5
commit c66198f56e
2 changed files with 48 additions and 1 deletions

View File

@@ -14,8 +14,8 @@ import javax.inject.Singleton
@Singleton
class BaseUrlInterceptor @Inject constructor(
private val serverUrlProviderProvider: Provider<ServerUrlProvider>,
private val logger: Logger,
private val serverUrlProviderProvider: Provider<ServerUrlProvider>,
) : LocalInterceptor {
private val serverUrlProvider: ServerUrlProvider

View File

@@ -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<Request>()
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()
}