From 9d8d07fb490f9c8ecf3ef13e76ed2df7a60763f8 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Sun, 7 Aug 2022 12:43:21 +0200 Subject: [PATCH] Remove AuthenticationInterceptorTest --- .../network/AuthenticationInterceptorTest.kt | 121 ------------------ 1 file changed, 121 deletions(-) delete mode 100644 app/src/test/java/gq/kirmanak/mealient/data/network/AuthenticationInterceptorTest.kt diff --git a/app/src/test/java/gq/kirmanak/mealient/data/network/AuthenticationInterceptorTest.kt b/app/src/test/java/gq/kirmanak/mealient/data/network/AuthenticationInterceptorTest.kt deleted file mode 100644 index e8419dd..0000000 --- a/app/src/test/java/gq/kirmanak/mealient/data/network/AuthenticationInterceptorTest.kt +++ /dev/null @@ -1,121 +0,0 @@ -package gq.kirmanak.mealient.data.network - -import com.google.common.truth.Truth.assertThat -import gq.kirmanak.mealient.data.auth.AuthRepo -import gq.kirmanak.mealient.test.AuthImplTestData.TEST_AUTH_HEADER -import gq.kirmanak.mealient.test.AuthImplTestData.TEST_BASE_URL -import io.mockk.* -import io.mockk.impl.annotations.MockK -import okhttp3.Interceptor -import okhttp3.Protocol -import okhttp3.Request -import okhttp3.Response -import org.junit.Before -import org.junit.Test - -class AuthenticationInterceptorTest { - @MockK(relaxUnitFun = true) - lateinit var authRepo: AuthRepo - - @MockK - lateinit var chain: Interceptor.Chain - - lateinit var subject: AuthenticationInterceptor - - @Before - fun setUp() { - MockKAnnotations.init(this) - subject = AuthenticationInterceptor(authRepo) - } - - @Test - fun `when intercept without header then response without header`() { - val request = createRequest() - val response = createResponse(request) - every { chain.request() } returns request - every { chain.proceed(any()) } returns response - coEvery { authRepo.getAuthHeader() } returns null - assertThat(subject.intercept(chain)).isEqualTo(response) - } - - @Test - fun `when intercept with header then chain called with header`() { - val request = createRequest() - val response = createResponse(request) - val requestSlot = slot() - - every { chain.request() } returns request - every { chain.proceed(capture(requestSlot)) } returns response - coEvery { authRepo.getAuthHeader() } returns TEST_AUTH_HEADER - - subject.intercept(chain) - - assertThat(requestSlot.captured.header("Authorization")).isEqualTo(TEST_AUTH_HEADER) - } - - @Test - fun `when intercept with stale header then calls invalidate`() { - val request = createRequest() - val response = createResponse(request, code = 403) - - every { chain.request() } returns request - every { chain.proceed(any()) } returns response - coEvery { authRepo.getAuthHeader() } returns TEST_AUTH_HEADER - - subject.intercept(chain) - - coVerifySequence { - authRepo.getAuthHeader() - authRepo.invalidateAuthHeader() - authRepo.getAuthHeader() - } - } - - @Test - fun `when intercept with proper header then requests auth header once`() { - val request = createRequest() - val response = createResponse(request) - - every { chain.request() } returns request - every { chain.proceed(any()) } returns response - coEvery { authRepo.getAuthHeader() } returns TEST_AUTH_HEADER - - subject.intercept(chain) - - coVerifySequence { authRepo.getAuthHeader() } - } - - - @Test - fun `when intercept with stale header then updates header`() { - val request = createRequest() - val response = createResponse(request, code = 403) - val requests = mutableListOf() - - every { chain.request() } returns request - every { chain.proceed(capture(requests)) } returns response - coEvery { authRepo.getAuthHeader() } returns TEST_AUTH_HEADER andThen "Bearer NEW TOKEN" - - subject.intercept(chain) - - assertThat(requests.size).isEqualTo(2) - assertThat(requests[0].header("Authorization")).isEqualTo(TEST_AUTH_HEADER) - assertThat(requests[1].header("Authorization")).isEqualTo("Bearer NEW TOKEN") - } - - private fun createRequest( - url: String = TEST_BASE_URL, - ): Request = Request.Builder() - .url(url) - .build() - - private fun createResponse( - request: Request, - code: Int = 200, - ): Response = Response.Builder() - .protocol(Protocol.HTTP_2) - .code(code) - .request(request) - .message("Doesn't matter") - .build() -} \ No newline at end of file