lobsters-api: fix tests

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-09-23 14:32:01 +05:30
parent a66186adc3
commit 0806d71e96
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 5 additions and 20 deletions

View file

@ -11,6 +11,7 @@ dependencies {
implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version"
kaptTest "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version" kaptTest "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"
testImplementation 'junit:junit:4.13' testImplementation 'junit:junit:4.13'
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"
// retrofit uses 3.14.9, so shall we. // retrofit uses 3.14.9, so shall we.
//noinspection GradleDependency //noinspection GradleDependency
testImplementation "com.squareup.okhttp3:mockwebserver:3.14.9" testImplementation "com.squareup.okhttp3:mockwebserver:3.14.9"

View file

@ -1,18 +1,14 @@
package dev.msfjarvis.lobsters.api package dev.msfjarvis.lobsters.api
import dev.msfjarvis.lobsters.model.LobstersPost import kotlinx.coroutines.runBlocking
import okhttp3.mockwebserver.Dispatcher import okhttp3.mockwebserver.Dispatcher
import okhttp3.mockwebserver.MockResponse import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockWebServer
import okhttp3.mockwebserver.RecordedRequest import okhttp3.mockwebserver.RecordedRequest
import org.junit.After import org.junit.After
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.fail
import org.junit.Before import org.junit.Before
import org.junit.Test import org.junit.Test
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
class LobstersApiTest { class LobstersApiTest {
private val webServer = MockWebServer() private val webServer = MockWebServer()
@ -30,23 +26,11 @@ class LobstersApiTest {
} }
@Test @Test
fun `api gets correct number of items`() { fun `api gets correct number of items`() = runBlocking {
apiClient.getHottestPosts().enqueue(object : Callback<List<dev.msfjarvis.lobsters.model.LobstersPost>> { val posts = apiClient.getHottestPosts()
override fun onResponse(
call: Call<List<dev.msfjarvis.lobsters.model.LobstersPost>>,
response: Response<List<dev.msfjarvis.lobsters.model.LobstersPost>>
) {
val posts = response.body()
require(posts != null)
assertEquals(25, posts.size) assertEquals(25, posts.size)
} }
override fun onFailure(call: Call<List<dev.msfjarvis.lobsters.model.LobstersPost>>, t: Throwable) {
fail("Call cannot fail in tests")
}
})
}
@After @After
fun tearDown() { fun tearDown() {
webServer.shutdown() webServer.shutdown()