Skip to content

Commit 940c5a4

Browse files
authored
Merge pull request #28 from Yelp/sample-retrofit-usage
Added test to explain usage of Swagger Codegen with Retrofit
2 parents 67ba99a + c971368 commit 940c5a4

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

samples/generated-code/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,18 @@ dependencies {
3838
implementation "com.squareup.moshi:moshi-adapters:1.8.0"
3939
implementation "com.squareup.moshi:moshi-kotlin:1.8.0"
4040
implementation "com.squareup.retrofit2:converter-moshi:2.5.0"
41+
implementation "com.squareup.retrofit2:adapter-rxjava2:2.5.0"
4142

4243
// Date Support
4344
implementation "com.jakewharton.threetenabp:threetenabp:1.1.1"
4445

4546
// RxJava
4647
implementation "io.reactivex.rxjava2:rxjava:2.2.4"
4748
implementation "io.reactivex.rxjava2:rxandroid:2.1.0"
49+
50+
// Testing Dependencies
51+
testImplementation "junit:junit:4.12"
52+
testImplementation "com.squareup.okhttp3:mockwebserver:3.12.3"
4853
}
4954

5055
generateSwagger {
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.yelp.codegen.generatecodesamples
2+
3+
import com.yelp.codegen.generatecodesamples.apis.DefaultApi
4+
import com.yelp.codegen.generatecodesamples.tools.GeneratedCodeConverters
5+
import okhttp3.mockwebserver.MockResponse
6+
import okhttp3.mockwebserver.MockWebServer
7+
import org.junit.Assert.assertEquals
8+
import org.junit.Rule
9+
import org.junit.Test
10+
import retrofit2.Retrofit
11+
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
12+
13+
class InvokeRetrofitTest {
14+
15+
@get:Rule
16+
val mockWebServer = MockWebServer()
17+
18+
@Test
19+
fun createAndInvokeRetrofit() {
20+
mockWebServer.enqueue(MockResponse().setBody("""
21+
{
22+
"name": "corgi",
23+
"id": 42,
24+
"photoUrls": [ "https://via.placeholder.com/150" ]
25+
}
26+
""".trimIndent()))
27+
28+
val retrofit: Retrofit = Retrofit.Builder()
29+
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
30+
.addConverterFactory(GeneratedCodeConverters.converterFactory())
31+
.baseUrl(mockWebServer.url("/"))
32+
.build()
33+
34+
val defaultApi = retrofit.create(DefaultApi::class.java)
35+
val pet = defaultApi.getPetById(1).blockingGet()
36+
37+
assertEquals(42L, pet.id)
38+
assertEquals("corgi", pet.name)
39+
assertEquals(1, pet.photoUrls.size)
40+
assertEquals("https://via.placeholder.com/150", pet.photoUrls[0])
41+
}
42+
}

samples/groovy-android/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies {
3838
implementation "com.squareup.moshi:moshi-adapters:1.8.0"
3939
implementation "com.squareup.moshi:moshi-kotlin:1.8.0"
4040
implementation "com.squareup.retrofit2:converter-moshi:2.5.0"
41+
implementation "com.squareup.retrofit2:adapter-rxjava2:2.5.0"
4142

4243
// Date Support
4344
implementation "com.jakewharton.threetenabp:threetenabp:1.1.1"

samples/kotlin-android/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ dependencies {
2424
implementation("com.squareup.moshi:moshi-adapters:1.8.0")
2525
implementation("com.squareup.moshi:moshi-kotlin:1.8.0")
2626
implementation("com.squareup.retrofit2:converter-moshi:2.5.0")
27+
implementation("com.squareup.retrofit2:adapter-rxjava2:2.5.0")
2728

2829
// Date Support
2930
implementation("com.jakewharton.threetenabp:threetenabp:1.1.1")

0 commit comments

Comments
 (0)