blob: 4e41b8567cc0ce6563f179301a91597a659939ae [file] [log] [blame]
/*
* Copyright 2015-2016 IBM Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package whisk.core.cli.test
import spray.json.JsObject
import spray.json.JsArray
import spray.json.JsString
import spray.json.JsNumber
import spray.json.JsBoolean
object JsonArgsForTests {
def getInvalidJSONInput = Seq(
"{\"invalid1\": }",
"{\"invalid2\": bogus}",
"{\"invalid1\": \"aKey\"",
"invalid \"string\"",
"{\"invalid1\": [1, 2, \"invalid\"\"arr\"]}"
)
def getJSONFileOutput() = JsArray(
JsObject(
"key" -> JsString("a key"),
"value" -> JsString("a value")
),
JsObject(
"key" -> JsString("a bool"),
"value" -> JsBoolean(true)
),
JsObject(
"key" -> JsString("objKey"),
"value" -> JsObject(
"b" -> JsString("c")
)
),
JsObject(
"key" -> JsString("objKey2"),
"value" -> JsObject(
"another object" -> JsObject(
"some string" -> JsString("1111")
)
)
),
JsObject(
"key" -> JsString("objKey3"),
"value" -> JsObject(
"json object" -> JsObject(
"some int" -> JsNumber(1111)
)
)
),
JsObject(
"key" -> JsString("a number arr"),
"value" -> JsArray(
JsNumber(1), JsNumber(2), JsNumber(3)
)
),
JsObject(
"key" -> JsString("a string arr"),
"value" -> JsArray(
JsString("1"), JsString("2"), JsString("3")
)
),
JsObject(
"key" -> JsString("a bool arr"),
"value" -> JsArray(
JsBoolean(true), JsBoolean(false), JsBoolean(true)
)
),
JsObject(
"key" -> JsString("strThatLooksLikeJSON"),
"value" -> JsString("{\"someKey\": \"someValue\"}")
)
)
def getEscapedJSONTestArgInput() = Map(
"key1" -> JsObject(
"nonascii" -> JsString("日本語")
),
"key2" -> JsObject(
"valid" -> JsString("J\\SO\"N")
),
"\"key\"with\\escapes" -> JsObject(
"valid" -> JsString("JSON")
),
"another\"escape\"" -> JsObject(
"valid" -> JsString("\\nJ\\rO\\tS\\bN\\f")
)
)
def getEscapedJSONTestArgOutput() = JsArray(
JsObject(
"key" -> JsString("key1"),
"value" -> JsObject(
"nonascii" -> JsString("日本語")
)
),
JsObject(
"key" -> JsString("key2"),
"value" -> JsObject(
"valid" -> JsString("J\\SO\"N")
)
),
JsObject(
"key" -> JsString("\"key\"with\\escapes"),
"value" -> JsObject(
"valid" -> JsString("JSON")
)
),
JsObject(
"key" -> JsString("another\"escape\""),
"value" -> JsObject(
"valid" -> JsString("\\nJ\\rO\\tS\\bN\\f")
)
)
)
def getValidJSONTestArgOutput() = JsArray(
JsObject(
"key" -> JsString("number"),
"value" -> JsNumber(8)
),
JsObject(
"key" -> JsString("objArr"),
"value" -> JsArray(
JsObject(
"name" -> JsString("someName"),
"required" -> JsBoolean(true)
),
JsObject(
"name" -> JsString("events"),
"count" -> JsNumber(10)
)
)
),
JsObject(
"key" -> JsString("strArr"),
"value" -> JsArray(
JsString("44"),
JsString("55")
)
),
JsObject(
"key" -> JsString("string"),
"value" -> JsString("This is a string")
),
JsObject(
"key" -> JsString("numArr"),
"value" -> JsArray(
JsNumber(44),
JsNumber(55)
)
),
JsObject(
"key" -> JsString("object"),
"value" -> JsObject(
"objString" -> JsString("aString"),
"objStrNum" -> JsString("123"),
"objNum" -> JsNumber(300),
"objBool" -> JsBoolean(false),
"objNumArr" -> JsArray(
JsNumber(1),
JsNumber(2)
),
"objStrArr" -> JsArray(
JsString("1"),
JsString("2")
)
)
),
JsObject(
"key" -> JsString("strNum"),
"value" -> JsString("9")
)
)
def getValidJSONTestArgInput() = Map(
"string" -> JsString("This is a string"),
"strNum" -> JsString("9"),
"number" -> JsNumber(8),
"numArr" -> JsArray(
JsNumber(44),
JsNumber(55)
),
"strArr" -> JsArray(
JsString("44"),
JsString("55")
),
"objArr" -> JsArray(
JsObject(
"name" -> JsString("someName"),
"required" -> JsBoolean(true)
),
JsObject(
"name" -> JsString("events"),
"count" -> JsNumber(10)
)
),
"object" -> JsObject(
"objString" -> JsString("aString"),
"objStrNum" -> JsString("123"),
"objNum" -> JsNumber(300),
"objBool" -> JsBoolean(false),
"objNumArr" -> JsArray(
JsNumber(1),
JsNumber(2)
),
"objStrArr" -> JsArray(
JsString("1"),
JsString("2")
)
)
)
}