Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.gtod.cusoon.servicetest
- import com.fasterxml.jackson.core.JsonFactory
- import net.gtod.cusoon.graphql.parser.parseObject
- import net.gtod.cusoon.test.toJson
- fun String.roundTripAsArray() = singleArray(fromJsonObject(execute().toJson()))
- fun String.roundTripAsScalar() = singleScalar(fromJsonObject(execute().toJson()))
- typealias JsonObject = LinkedHashMap<String, Any?>
- typealias JsonArray = ArrayList<Any?>
- fun fromJsonObject(str: String): JsonObject {
- val parser = JsonFactory().createParser(str)
- parser.nextToken() // Start object
- return parser.parseObject() as JsonObject
- }
- fun JsonArray.firstObject(): JsonObject {
- @Suppress("UNCHECKED_CAST")
- return first() as JsonObject
- }
- fun singleArray(obj: JsonObject): JsonArray {
- if (obj.size != 1) {
- throw IllegalArgumentException("Can only call single() on a map of one element")
- }
- @Suppress("UNCHECKED_CAST")
- return obj.getValue(obj.keys.first()) as JsonArray
- }
- fun singleScalar(obj: JsonObject): JsonObject {
- if (obj.size != 1) {
- throw IllegalArgumentException("Can only call single() on a map of one element")
- }
- @Suppress("UNCHECKED_CAST")
- return obj.getValue(obj.keys.first()) as JsonObject
- }
Add Comment
Please, Sign In to add comment