Skip to content

Commit 1c2ef79

Browse files
committed
Merge remote-tracking branch 'origin/master' into development
2 parents af5233b + 9fff6bc commit 1c2ef79

File tree

5 files changed

+46
-19
lines changed

5 files changed

+46
-19
lines changed

.github/workflows/gradle.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: CI
22

3-
on: [push]
3+
on: [push, pull_request]
44

55
jobs:
66
build:
@@ -13,5 +13,5 @@ jobs:
1313
uses: actions/setup-java@v1
1414
with:
1515
java-version: 1.8
16-
- name: Build with Gradle
17-
run: ./gradlew build
16+
- name: Build and Test
17+
run: ./gradlew clean test

src/test/kotlin/com/haroldadmin/cnradapter/ErrorExtractionTest.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,17 @@ package com.haroldadmin.cnradapter
33
import io.kotlintest.matchers.types.shouldBeSameInstanceAs
44
import io.kotlintest.matchers.types.shouldBeTypeOf
55
import io.kotlintest.shouldBe
6+
import io.kotlintest.specs.AnnotationSpec
67
import okhttp3.Headers
78
import okhttp3.ResponseBody
89
import retrofit2.HttpException
910
import retrofit2.Response
1011
import okhttp3.ResponseBody.Companion.toResponseBody
11-
import org.junit.Test
1212
import retrofit2.Converter
13-
import retrofit2.http.Header
1413
import java.io.IOException
1514
import java.lang.Exception
1615

17-
internal class ErrorExtractionTest {
16+
internal class ErrorExtractionTest: AnnotationSpec() {
1817

1918
private val errorConverter = Converter<ResponseBody, String> { responseBody -> responseBody.toString() }
2019

@@ -48,9 +47,14 @@ internal class ErrorExtractionTest {
4847

4948
private class CustomException: Exception()
5049

51-
@Test(expected = CustomException::class)
50+
@Test
5251
fun `extract error from an unknown exception test`() {
5352
val exception = CustomException()
54-
exception.extractNetworkResponse<String, String>(errorConverter)
53+
val response = exception.extractNetworkResponse<String, String>(errorConverter)
54+
with(response) {
55+
shouldBeTypeOf<NetworkResponse.UnknownError>()
56+
this as NetworkResponse.UnknownError
57+
this.error shouldBe exception
58+
}
5559
}
5660
}

src/test/kotlin/com/haroldadmin/cnradapter/MoshiApplicationTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import com.squareup.moshi.Moshi
66
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
77
import io.kotlintest.matchers.string.shouldContain
88
import io.kotlintest.matchers.types.shouldBeInstanceOf
9+
import io.kotlintest.specs.AnnotationSpec
910
import kotlinx.coroutines.Deferred
1011
import kotlinx.coroutines.runBlocking
1112
import okhttp3.mockwebserver.MockResponse
1213
import okhttp3.mockwebserver.MockWebServer
13-
import org.junit.Test
1414
import retrofit2.Retrofit
1515
import retrofit2.converter.moshi.MoshiConverterFactory
1616
import retrofit2.http.GET
@@ -74,7 +74,7 @@ internal class TestApplication(
7474

7575
}
7676

77-
internal class MoshiApplicationTest {
77+
internal class MoshiApplicationTest: AnnotationSpec() {
7878

7979
private val moshi = Moshi.Builder()
8080
.add(KotlinJsonAdapterFactory())

src/test/kotlin/com/haroldadmin/cnradapter/NetworkResponseCallTest.kt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,23 @@ import com.haroldadmin.cnradapter.NetworkResponseCall
66
import io.kotlintest.matchers.types.shouldBeTypeOf
77
import io.kotlintest.matchers.types.shouldNotBeSameInstanceAs
88
import io.kotlintest.shouldBe
9+
import io.kotlintest.specs.AnnotationSpec
910
import okhttp3.ResponseBody
1011
import okhttp3.ResponseBody.Companion.toResponseBody
11-
import org.junit.Test
1212
import retrofit2.*
1313
import java.io.IOException
1414

15-
internal class NetworkResponseCallTest {
15+
internal class NetworkResponseCallTest: AnnotationSpec() {
1616
private val errorConverter = Converter<ResponseBody, String> { it.string() }
17-
private val backingCall = CompletableCall<String>()
18-
private val networkResponseCall = NetworkResponseCall<String, String>(backingCall, errorConverter)
17+
18+
private lateinit var backingCall: CompletableCall<String>
19+
private lateinit var networkResponseCall: NetworkResponseCall<String, String>
20+
21+
@Before
22+
fun setup() {
23+
backingCall = CompletableCall<String>()
24+
networkResponseCall = NetworkResponseCall<String, String>(backingCall, errorConverter)
25+
}
1926

2027
@Test(expected = UnsupportedOperationException::class)
2128
fun `should throw an error when invoking 'execute'`() {

src/test/kotlin/com/haroldadmin/cnradapter/SuspendTest.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,16 @@ package com.haroldadmin.cnradapter
33
import io.kotlintest.matchers.types.shouldBeTypeOf
44
import io.kotlintest.shouldBe
55
import io.kotlintest.shouldNotBe
6+
import io.kotlintest.specs.AnnotationSpec
67
import kotlinx.coroutines.runBlocking
78
import okhttp3.mockwebserver.MockResponse
89
import okhttp3.mockwebserver.MockWebServer
910
import okhttp3.mockwebserver.SocketPolicy
10-
import org.junit.After
11-
import org.junit.Before
12-
import org.junit.Test
1311
import retrofit2.Retrofit
1412
import java.util.concurrent.ExecutorService
1513
import java.util.concurrent.Executors
1614

17-
class SuspendTest {
15+
internal class SuspendTest: AnnotationSpec() {
1816

1917
private lateinit var server: MockWebServer
2018
private lateinit var executor: ExecutorService
@@ -71,7 +69,7 @@ class SuspendTest {
7169
shouldBeTypeOf<NetworkResponse.ServerError<String>>()
7270
this as NetworkResponse.ServerError
7371
code shouldBe responseCode
74-
body shouldBe null
72+
body.isNullOrBlank() shouldBe true
7573
headers!!["TEST"] shouldBe "test"
7674
}
7775
}
@@ -83,6 +81,24 @@ class SuspendTest {
8381
response.shouldBeTypeOf<NetworkResponse.NetworkError>()
8482
}
8583

84+
// Ignore this test because someone else wants to work on solving this issue:
85+
// https://github.com/haroldadmin/NetworkResponseAdapter/issues/9
86+
@Test
87+
@Ignore
88+
fun `successful response with empty body`() {
89+
val successResponseCode = 204
90+
server.enqueue(MockResponse().apply {
91+
setResponseCode(successResponseCode)
92+
})
93+
val response = runBlocking { service.getTextSuspend() }
94+
95+
with(response) {
96+
shouldBeTypeOf<NetworkResponse.Success<String>>()
97+
this as NetworkResponse.Success
98+
body shouldBe null
99+
}
100+
}
101+
86102
@After
87103
fun cleanup() {
88104
server.close()

0 commit comments

Comments
 (0)