36 lines
1023 B
Kotlin
36 lines
1023 B
Kotlin
package org.moire.ultrasonic.api.subsonic.interceptors
|
|
|
|
import okhttp3.Interceptor
|
|
import okhttp3.OkHttpClient
|
|
import okhttp3.Request
|
|
import org.junit.Before
|
|
import org.junit.Rule
|
|
import org.moire.ultrasonic.api.subsonic.rules.MockWebServerRule
|
|
|
|
/**
|
|
* Base class for testing [okhttp3.Interceptor] implementations.
|
|
*/
|
|
abstract class BaseInterceptorTest {
|
|
@Rule @JvmField val mockWebServerRule = MockWebServerRule()
|
|
|
|
lateinit var client: OkHttpClient
|
|
|
|
abstract val interceptor: Interceptor
|
|
|
|
@Before
|
|
fun setUp() {
|
|
client = OkHttpClient.Builder().addInterceptor(interceptor).build()
|
|
}
|
|
|
|
/**
|
|
* Creates [Request] to use with [mockWebServerRule].
|
|
*
|
|
* @param additionalParams passes [Request.Builder] to add additionally required
|
|
* params to the [Request].
|
|
*/
|
|
fun createRequest(additionalParams: (Request.Builder) -> Unit): Request = Request.Builder()
|
|
.url(mockWebServerRule.mockWebServer.url("/"))
|
|
.also { additionalParams(it) }
|
|
.build()
|
|
}
|