send::
msg expr.json.create (customer="Jane"
)
expect:: (cart[="id"] is "Jane"
)
expect:: ( ((cart as String) contains "Jane")
)
send::
msg expr.json.addItem (sku="book1"
, quantity:Number=2
)
send::
msg expr.json.addItem (sku="book2"
, quantity:Number=3
)
expect:: (cart is JSON
)
expect:: (cart[="items"] is Array
)
expect:: ( ((cart[="items"][="1"=1] as String) contains "book2")
)
Access inside JSON object using diesel expressions:
send::
msg ctx.set (size)
expect:: (size is 2
)
Or using JS expression - you have more flexibility this way (costs more CPU)
send::
msg ctx.set (size74)
expect:: (size74 is 2
)
You can do more fancy access:
send::
msg ctx.set (res78)
expect:: (res78 is "book1"
)
send::
msg ctx.set (res84 :JSON)
expect:: (res84[="version"] == "V2"
)
send::
msg ctx.set (fieldName="items"
)
send::
msg ctx.set (res240)
expect:: (res240 is Array
)
send::
msg ctx.set (res241)
expect:: (res241 is "book1"
)
send::
msg ctx.set (res242)
expect:: (res242 is "book1"
)
send::
msg ctx.foreach (list, item="item"
, msg="testing.invcheck"
)
send::
msg ctx.set (ajson :JSON)
expect:: (ajson[="bnum"] is number
)
expect:: (ajson[="bnum"] is 321
)
send::
msg ctx.set (line87)
expect:: (line87 is 321
)
send::
msg ctx.set (line89)
expect:: (line89 is 123
)
they map into array of json, we can acces members or result
send::
msg ctx.set (g45 :Array)
send::
msg ctx.set (g46)
expect:: (g46[="0"=0][:String="_id"] is "aa"
)
Support multi-line and ID with quotes, double quotes or nothing...
send::
msg ctx.set (ajson2 :JSON)
expect:: (ajson2[="bnum"] is number
)
expect:: (ajson2[="bnum"] is 321
)
Make sure 123 is kept as a number, not "123"
send::
msg ctx.set (body101 :JSON)
expect:: (body101 ~= "(?s).*: 123."
)
And also that we preserve the input string
send::
msg ctx.set (body110 :JSON)
expect:: (body110 ~= "(?s).:"123".*"
)
send::
msg ctx.json (a-num:Number=123
, bnum:Number=321
, a-string)
expect:: (payload[="nada"] not defined
)
expect:: (payload[="bnum"] is 321
)
send::
msg expr.json.create2 (a:Number=1
, b:Number=2
)
expect:: (payload[="a"] is 1
)
send::
msg expr.json.sum2 (a:Number=1
, b:Number=2
)
expect:: (payload[="a"] is 1
)
expect:: (payload[="b"] is 2
)
send::
msg ctx.echo (msg :JSON)
expect:: (msg is {}
)
send::
msg ctx.set (msg :Array=[..]
)
expect:: (msg is []
)
send::
msg ctx.set (msg :Array=[..]
)
expect:: (msg is [1,"a",3]
)
send::
msg ctx.set (a:Number=1
, b:Number=2
)
send::
msg ctx.echo (msg :Array)
expect:: (msg is [1,"a",2]
)
send::
msg ctx.set (msg127 :JSON)
expect:: ( ((msg127 as String) contains ""a"")
)
send::
msg ctx.set (msg130 :JSON)
send::
msg ctx.set (msg133 :JSON)
expect:: (msg133[="a"][="a"] is 3
)
send::
msg ctx.set (msg :JSON)
send::
msg expr.simplejson.do (x:Number=3
)
expect:: (payload[="x"] is 3
)
expect:: (payload[="x"] is Number
)
This will match (a,b)
send::
msg ctx.json (a:Number=1
, b:Number=5
)
send::
msg dieseltest.asAttrs (payload.asAttrs)
expect:: (res33 is 6
)
This will not match (a,b)
send::
msg ctx.json (a:Number=7
)
send::
msg dieseltest.asAttrs (payload.asAttrs)
expect:: (res33 is 6
)
send::
msg ctx.set (student :JSON[DieselTestStudent])
send::
msg ctx.echo (m)
send::
msg ctx.echo (m)
// $send ctx.set(student.address.no="65")
send::
msg test.diesel.rule40
send::
msg ctx.echo (m)
expect:: (student[="address"][="no"] is "65"
)
Note - you can't do this:
send::
msg ctx.echo (m)
But you can do this:
send::
msg ctx.echo (m)
send::
msg ctx.set (a171 :Array=[..]
)
expect:: ( ("a" in [1,"a",3])
)
expect:: ( ("a" in a171)
)
expect:: ( (3 in a171)
)
expect:: ( ("no" not in a171)
)
send::
msg test.diesel.isin (x="123"
, y:Number=3
)
expect:: (y46 is true
)
send:: msg (y46
=null)
send::
msg test.diesel.isin (x="123"
, y:Number=1
)
expect:: (y46 not defined
)
send:: msg (y46
=null)
send::
msg test.diesel.isin (x="1234"
, y:Number=1
)
expect:: (y46 not defined
)
send::
msg ctx.set (j188 :JSON)
expect:: (j188[="b"] is "b"
)
send::
msg ctx.set (j189)
expect:: (j189[="c"] is "c"
)
send::
msg ctx.set (j192)
expect:: (j192[="b"] is undefined
)
send::
msg ctx.set (payload :Array)
send::
msg ctx.jsonToCsv (list, separator=","
)
expect:: (payload is Array
)
send::
msg ctx.mkString (separator="
"
)
expect:: (payload is String
)
expect:: (payload contains "true"
)
send::
msg ctx.set (csv ="llos,name,source,nlos,timestam"
...)
send::
msg ctx.csvToJson (payload, separator=","
, hasHeaders:Boolean)
expect:: (payload is Array
)
expect:: (payload[="0"=0] is Json
)
send::
msg ctx.set (parms="a.a.a,b.b.b"
)
send::
msg ctx.set (p0 :JSON)
send::
msg ctx.set (x220)
send::
msg ctx.echo (x221)
expect:: (x221 is [1,2]
)
send::
msg ctx.set (students :Array)
send::
msg testdiesel.jstx (students)
expect:: (payload is 8
)
send::
msg testdiesel.jstxo (students)
expect:: (payload[="sum"] is 8
)
send::
msg ctx.set (x238 :JSON)
expect:: (x238[="3"="3"] is 5
)
send::
msg ctx.set (g45 :Array)
send::
msg ctx.set (g46)
send::
msg ctx.set (g47 :JSON)
send::
msg ctx.echo (x)
expect:: (g47[="a"] is defined
)
This one makes sure it's obtained properly unescaped:
expect:: (g47[="a"] contains ""bb""
)
Associativity:
send::
msg ctx.set (j254:Number)
expect:: (j254 is 6
)
send::
msg ctx.set (j255 :JSON)
expect:: (j255 is {a:1,b:2,c:3}
)
send::
msg ctx.set (a :JSON, b :JSON, c :JSON)
send::
msg ctx.set (j256)
expect:: (j256 is {a:1,b:2,c:3}
)
send::
msg ctx.set (j268)
expect:: (j268 is {a:1,b:2,c:3}
)
send::
msg ctx.set (g273 :Array=[..]
)
send::
msg ctx.set (g274)
expect:: (g274 is array
)
expect:: (g274[="0"=0][:String="a"] is "aa"
)
send::
msg ctx.set (g274 :JSON)
expect:: (g274 is array
)
expect:: (g274[="0"=0][:String="a"] is "aa"
)
val a290:Array=[[1,2],[3,4]]
val a291=flatten(x=a290)
expect:: (a291 is [1,2,3,4]
)
val a294=(a290 flatMap x=>(x + ["a"])())
expect:: (a294 is [1,2,"a",3,4,"a"]
)
val a297=(a290 flatMap x=>x())
expect:: (a297 is [1,2,3,4]
)
You need to log in to post a comment!