Skip to content

Commit d21d212

Browse files
authored
Merge pull request #128 from joreilly/apollo_4
Apollo 4
2 parents a4af447 + a4045dd commit d21d212

File tree

4 files changed

+46
-55
lines changed

4 files changed

+46
-55
lines changed

gradle/libs.versions.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ coroutines = "1.7.3"
55
androidGradlePlugin = "8.1.4"
66
koin = "3.5.0"
77
koinCompose = "3.5.0"
8-
apollo = "3.8.2"
8+
apollo = "4.0.0-alpha.2"
99
kmpNativeCoroutines = "1.0.0-ALPHA-18"
1010

1111
androidxActivity = "1.8.0"

shared/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ apollo {
6161
packageName.set("dev.johnoreilly.starwars")
6262
codegenModels.set("operationBased")
6363
generateSchema.set(true)
64-
generateTestBuilders.set(true)
64+
generateDataBuilders.set(true)
6565
}
6666
}
6767

Original file line numberDiff line numberDiff line change
@@ -1,59 +1,49 @@
11
package dev.johnoreilly.starwars.shared
22

3-
import com.apollographql.apollo3.api.json.buildJsonString
4-
import com.apollographql.apollo3.api.json.writeAny
5-
import com.apollographql.apollo3.api.json.writeObject
6-
import dev.johnoreilly.starwars.test.GetAllFilmsQuery_TestBuilder
7-
import dev.johnoreilly.starwars.test.GetAllPeopleQuery_TestBuilder
3+
import dev.johnoreilly.starwars.GetAllFilmsQuery
4+
import dev.johnoreilly.starwars.GetAllPeopleQuery
5+
import dev.johnoreilly.starwars.type.buildFilm
6+
import dev.johnoreilly.starwars.type.buildFilmsConnection
7+
import dev.johnoreilly.starwars.type.buildPeopleConnection
8+
import dev.johnoreilly.starwars.type.buildPerson
9+
import dev.johnoreilly.starwars.type.buildPlanet
810

9-
val getAllPeopleMockResponse = buildJsonString {
10-
writeObject {
11-
name("data")
12-
writeAny(
13-
GetAllPeopleQuery_TestBuilder.DataBuilder().apply {
14-
allPeople = allPeople {
15-
people = listOf(
16-
person {
17-
id = "1"
18-
name = "Person 1"
19-
homeworld = homeworld {
20-
name = "Home World 1"
21-
}
11+
12+
val getAllPeopleMockResponse = GetAllPeopleQuery.Data {
13+
allPeople = buildPeopleConnection {
14+
people = listOf(
15+
buildPerson {
16+
id = "1"
17+
name = "Person 1"
18+
homeworld = buildPlanet {
19+
name = "Home World 1"
20+
}
2221
},
23-
person {
24-
id = "2"
25-
name = "Person 2"
26-
homeworld = homeworld {
27-
name = "Home World 2"
28-
}
22+
buildPerson {
23+
id = "2"
24+
name = "Person 2"
25+
homeworld = buildPlanet {
26+
name = "Home World 2"
27+
}
2928
}
30-
)
31-
}
32-
}.build()
33-
)
34-
}
29+
)
30+
}
3531
}
3632

37-
val getAllFilmsMockResponse = buildJsonString {
38-
writeObject {
39-
name("data")
40-
writeAny(
41-
GetAllFilmsQuery_TestBuilder.DataBuilder().apply {
42-
allFilms = allFilms {
43-
films = listOf(
44-
film {
45-
id = "1"
46-
title = "Film 1"
47-
director = "Director 1"
33+
val getAllFilmsMockResponse = GetAllFilmsQuery.Data {
34+
allFilms = buildFilmsConnection {
35+
films = listOf(
36+
buildFilm {
37+
id = "1"
38+
title = "Film 1"
39+
director = "Director 1"
4840
},
49-
film {
50-
id = "2"
51-
title = "Film 2"
52-
director = "Director 1"
41+
buildFilm {
42+
id = "2"
43+
title = "Film 2"
44+
director = "Director 1"
5345
}
54-
)
55-
}
56-
}.build()
57-
)
58-
}
59-
}
46+
)
47+
}
48+
}
49+

shared/src/commonTest/kotlin/dev/johnoreilly/starwars/shared/StarWarsRepositoryTest.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package dev.johnoreilly.starwars.shared
22

33
import com.apollographql.apollo3.ApolloClient
44
import com.apollographql.apollo3.annotations.ApolloExperimental
5+
import com.apollographql.apollo3.api.toResponseJson
56
import com.apollographql.apollo3.mockserver.MockResponse
67
import com.apollographql.apollo3.mockserver.MockServer
7-
import com.apollographql.apollo3.testing.runTest
88
import dev.johnoreilly.starwars.shared.di.commonModule
99
import kotlinx.coroutines.flow.first
10+
import kotlinx.coroutines.test.runTest
1011
import org.koin.core.context.startKoin
1112
import org.koin.dsl.module
1213
import org.koin.test.KoinTest
@@ -38,14 +39,14 @@ class StarWarsRepositoryTest: KoinTest {
3839
fun testStarWarsRepository() = runTest {
3940
mockServerUrl = mockServer.url()
4041

41-
mockServer.enqueue(MockResponse(body = getAllPeopleMockResponse))
42+
mockServer.enqueue(MockResponse.Builder().body(getAllPeopleMockResponse.toResponseJson()).build())
4243
val people = repo.people.first()
4344
assertEquals(2, people.size)
4445
assertEquals("Person 1", people[0].name)
4546
assertEquals("Home World 1", people[0].homeworld.name)
4647
println(people)
4748

48-
mockServer.enqueue(MockResponse(body = getAllFilmsMockResponse))
49+
mockServer.enqueue(MockResponse.Builder().body(getAllFilmsMockResponse.toResponseJson()).build())
4950
val films = repo.films.first()
5051
assertEquals(2, films.size)
5152
assertEquals("Film 1", films[0].title)

0 commit comments

Comments
 (0)