ultrasonic-app-subsonic-and.../subsonic-api/src/integrationTest/kotlin/org/moire/ultrasonic/api/subsonic/rules/MockWebServerRule.kt

27 lines
767 B
Kotlin

package org.moire.ultrasonic.api.subsonic.rules
import okhttp3.mockwebserver.MockWebServer
import org.junit.rules.TestRule
import org.junit.runner.Description
import org.junit.runners.model.Statement
/**
* Starts mock web server for test and shut it down after.
*/
class MockWebServerRule: TestRule {
val mockWebServer = MockWebServer()
override fun apply(base: Statement?, description: Description?): Statement {
val ruleStatement = object: Statement() {
override fun evaluate() {
try {
mockWebServer.start()
base?.evaluate()
} finally {
mockWebServer.shutdown()
}
}
}
return ruleStatement
}
}