27 lines
767 B
Kotlin
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
|
|
}
|
|
} |