Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit

Permalink
make sure we did not break sync resolvers
Browse files Browse the repository at this point in the history
  • Loading branch information
Bertrand committed Sep 11, 2018
1 parent 33c406f commit af310c4
Showing 1 changed file with 81 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,86 @@ class SchemaBuilderTest {

class SixValues(val val1: Int = 1, val val2: String = "2", val val3: Int = 3, val val4: String = "4", val val5: Int = 5, val val6: String = "6")

fun checkSixValuesSchema(schema: Schema) {
val response = deserialize (schema.execute("{" +
"queryWith1Param(val1: 2) { val1 }" +
"queryWith2Params(val1: 2, val2: \"3\") { val1, val2 }" +
"queryWith3Params(val1: 2, val2: \"3\", val3: 4) { val1, val2, val3 }" +
"queryWith4Params(val1: 2, val2: \"3\", val3: 4, val4: \"5\") { val1, val2, val3, val4 }" +
"queryWith5Params(val1: 2, val2: \"3\", val3: 4, val4: \"5\", val5: 6) { val1, val2, val3, val4, val5 }" +
"queryWith6Params(val1: 2, val2: \"3\", val3: 4, val4: \"5\", val5: 6, val6: \"7\") { val1, val2, val3, val4, val5, val6 }" +
"}"))
assertThat(response.extract<Int>("data/queryWith1Param/val1"), equalTo(2))

assertThat(response.extract<Int>("data/queryWith2Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith2Params/val2"), equalTo("3"))

assertThat(response.extract<Int>("data/queryWith3Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith3Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith3Params/val3"), equalTo(4))

assertThat(response.extract<Int>("data/queryWith4Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith4Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith4Params/val3"), equalTo(4))
assertThat(response.extract<String>("data/queryWith4Params/val4"), equalTo("5"))

assertThat(response.extract<Int>("data/queryWith5Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith5Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith5Params/val3"), equalTo(4))
assertThat(response.extract<String>("data/queryWith5Params/val4"), equalTo("5"))
assertThat(response.extract<Int>("data/queryWith5Params/val5"), equalTo(6))

assertThat(response.extract<Int>("data/queryWith6Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith6Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith6Params/val3"), equalTo(4))
assertThat(response.extract<String>("data/queryWith6Params/val4"), equalTo("5"))
assertThat(response.extract<Int>("data/queryWith6Params/val5"), equalTo(6))
assertThat(response.extract<String>("data/queryWith6Params/val6"), equalTo("7"))
}

@Test
fun `Schema can contain resolvers with up to 6 parameters`() {
val schema = KGraphQL.schema {
query("queryWith1Param") {
resolver { val1: Int ->
SixValues(val1)
}
}

query("queryWith2Params") {
resolver { val1: Int, val2: String ->
SixValues(val1, val2)
}
}

query("queryWith3Params") {
resolver { val1: Int, val2: String, val3: Int ->
SixValues(val1, val2, val3)
}
}

query("queryWith4Params") {
resolver { val1: Int, val2: String, val3: Int, val4: String ->
SixValues(val1, val2, val3, val4)
}
}

query("queryWith5Params") {
resolver { val1: Int, val2: String, val3: Int, val4: String, val5: Int ->
SixValues(val1, val2, val3, val4, val5)
}
}

query("queryWith6Params") {
resolver { val1: Int, val2: String, val3: Int, val4: String, val5: Int, val6: String ->
SixValues(val1, val2, val3, val4, val5, val6)
}
}
}

checkSixValuesSchema(schema)
}

@Test
fun `Schema can contain suspend resolvers`() {
val schema = KGraphQL.schema {
Expand Down Expand Up @@ -413,40 +493,6 @@ class SchemaBuilderTest {
}
}

val response = deserialize (schema.execute("{" +
"queryWith1Param(val1: 2) { val1 }" +
"queryWith2Params(val1: 2, val2: \"3\") { val1, val2 }" +
"queryWith3Params(val1: 2, val2: \"3\", val3: 4) { val1, val2, val3 }" +
"queryWith4Params(val1: 2, val2: \"3\", val3: 4, val4: \"5\") { val1, val2, val3, val4 }" +
"queryWith5Params(val1: 2, val2: \"3\", val3: 4, val4: \"5\", val5: 6) { val1, val2, val3, val4, val5 }" +
"queryWith6Params(val1: 2, val2: \"3\", val3: 4, val4: \"5\", val5: 6, val6: \"7\") { val1, val2, val3, val4, val5, val6 }" +
"}"))
assertThat(response.extract<Int>("data/queryWith1Param/val1"), equalTo(2))

assertThat(response.extract<Int>("data/queryWith2Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith2Params/val2"), equalTo("3"))

assertThat(response.extract<Int>("data/queryWith3Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith3Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith3Params/val3"), equalTo(4))

assertThat(response.extract<Int>("data/queryWith4Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith4Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith4Params/val3"), equalTo(4))
assertThat(response.extract<String>("data/queryWith4Params/val4"), equalTo("5"))

assertThat(response.extract<Int>("data/queryWith5Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith5Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith5Params/val3"), equalTo(4))
assertThat(response.extract<String>("data/queryWith5Params/val4"), equalTo("5"))
assertThat(response.extract<Int>("data/queryWith5Params/val5"), equalTo(6))

assertThat(response.extract<Int>("data/queryWith6Params/val1"), equalTo(2))
assertThat(response.extract<String>("data/queryWith6Params/val2"), equalTo("3"))
assertThat(response.extract<Int>("data/queryWith6Params/val3"), equalTo(4))
assertThat(response.extract<String>("data/queryWith6Params/val4"), equalTo("5"))
assertThat(response.extract<Int>("data/queryWith6Params/val5"), equalTo(6))
assertThat(response.extract<String>("data/queryWith6Params/val6"), equalTo("7"))

checkSixValuesSchema(schema)
}
}

0 comments on commit af310c4

Please sign in to comment.