See Domain Modelling and Assets, Entities and Inventories.
Register and connect
send::
msg diesel.inv.register (inventory="diesel.db.col", classNames ="TestClassInv1,TestClassInv2"...)
send::
msg diesel.inv.connect (inventory="diesel.db.col", env, connection)
expect:: (payload contains "ok")
send::
msg diesel.inv.testConnection (inventory="diesel.db.col", connection)
expect:: (payload contains "ok")
Some objects...
val tc21:JSON[TestClassInv2]={
"someValue": "something 2",
"key": "tc21"
}
val tc100:JSON[TestClassInv1]={
"someValue": "something",
"ref2": "tc21",
"key": "tc100"
}
val tc11:JSON[TestClassInv1]={
"someValue": "something",
"ref2": "tc21",
"key": "tc11"
}
val tc12:JSON[TestClassInv1]={
"assetRef": {"key": "tc12"},
"someValue": "something"
}
0 $mock::
a.b
. (x=[tc21,tc11,tc12])
send::
msg a.b
send::
msg ctx.echo (x)
Specify class, untyped object
send::
msg diesel.inv.upsert (className="TestClassInv1", entity :JSON)
expect:: (payload[="key"] is "akey")
Typed version - by key, don't specify the class anymore (the entities have a field called key and they know their class, i.e. they are not generic objects):
send::
msg diesel.inv.upsert (entity)
expect:: (payload contains "tc21")
send::
msg diesel.inv.upsert (entity)
expect:: (payload contains "tc11")
Typed version - by ref - the entities have a field called assetRef - this is the default diesel asset reference.
send::
msg diesel.inv.upsert (entity)
expect:: (payload contains "tc12")
send::
msg diesel.db.col.get (collection="TestClassInv1", id="tc12")
expect:: ( ((payload as string) contains "tc12"))
// ### QUERY
send::
msg diesel.inv.listAll (className="TestClassInv1")
expect:: (payload[="total"] is Number)
expect:: (payload[="data"] is Array)
send::
msg diesel.inv.find (className="TestClassInv1", key="tc11")
expect:: (payload is Json)
send:: msg (tc11[="x"]="xattr")
send::
msg diesel.inv.upsert (entity)
send::
msg diesel.inv.find (className="TestClassInv1", key)
expect:: (payload[="x"] is "xattr")
send::
msg ctx.set (payload :Array=[..])
send::
msg diesel.inv.query (className="TestClassInv1", query :JSON)
expect:: (payload[="data"][="0"=0][:String="x"] is "xattr")
send::
msg diesel.inv.remove (className="TestClassInv1", key="tc100")
send::
msg diesel.inv.find (className="TestClassInv1", key)
expect:: (payload is undefined)
send::
msg diesel.inv.register (inventory="diesel.db.inmem", classNames ="TestClassInv1,TestClassInv2"...)
send::
msg diesel.inv.connect (inventory="diesel.db.inmem", env, connection)
expect:: (payload contains "ok")
send::
msg diesel.inv.testConnection (inventory="diesel.db.inmem", connection)
expect:: (payload contains "ok")
Some objects...
val tc21:JSON[TestClassInv2]={
"someValue": "something 2",
"key": "tc21"
}
val tc100:JSON[TestClassInv1]={
"someValue": "something",
"ref2": "tc21",
"key": "tc100"
}
val tc11:JSON[TestClassInv1]={
"someValue": "something",
"ref2": "tc21",
"key": "tc11"
}
val tc12:JSON[TestClassInv1]={
"assetRef": {"key": "tc12"},
"someValue": "something"
}
0 $mock::
a.b
. (x=[tc21,tc11,tc12])
send::
msg a.b
send::
msg ctx.echo (x)
Specify class, untyped object
send::
msg diesel.inv.upsert (className="TestClassInv1", entity :JSON)
expect:: (payload[="key"] is "akey")
Typed version - by key, don't specify the class anymore (the entities have a field called key):
send::
msg diesel.inv.upsert (entity)
expect:: (payload[="key"] is "tc21")
send::
msg diesel.inv.upsert (entity)
expect:: (payload[="key"] is "tc11")
Typed version - by ref - the entities have a field called assetRef - this is the default diesel asset reference.
send::
msg diesel.inv.upsert (entity)
expect:: ( ((payload as string) contains "tc12"))
send::
msg diesel.ing.find (collection="TestClassInv1", key="tc12")
expect:: ( ((payload as string) contains "tc12"))
// ### QUERY
send::
msg diesel.inv.listAll (className="TestClassInv1")
expect:: (payload[="data"] is Array)
send::
msg ctx.echo (x)
send::
msg diesel.inv.find (className="TestClassInv1", key="tc11")
expect:: (payload is Json)
send:: msg (tc11[="x"]="xattr")
send::
msg diesel.inv.upsert (entity)
send::
msg diesel.inv.find (className="TestClassInv1", key)
expect:: (payload[="x"] is "xattr")
send::
msg ctx.set (payload :Array=[..])
send::
msg diesel.inv.query (className="TestClassInv1", query :JSON)
expect:: (payload[="data"][="0"=0][:String="x"] is "xattr")
send::
msg diesel.inv.remove (className="TestClassInv1", key="tc100")
send::
msg diesel.inv.find (className="TestClassInv1", key)
expect:: (payload is undefined)
send::
msg diesel.inv.register (inventory="diesel.db.memshared", classNames ="TestClassInv1,TestClassInv2"...)
send::
msg diesel.inv.connect (inventory="diesel.db.memshared", env, connection)
expect:: (payload contains "ok")
send::
msg diesel.inv.testConnection (inventory="diesel.db.memshared", connection)
expect:: (payload contains "ok")
Some objects...
val tc21:JSON[TestClassInv2]={
"someValue": "something 2",
"key": "tc21"
}
val tc100:JSON[TestClassInv1]={
"someValue": "something",
"ref2": "tc21",
"key": "tc100"
}
val tc11:JSON[TestClassInv1]={
"someValue": "something",
"ref2": "tc21",
"key": "tc11"
}
val tc12:JSON[TestClassInv1]={
"assetRef": {"key": "tc12"},
"someValue": "something"
}
0 $mock::
a.b
. (x=[tc21,tc11,tc12])
send::
msg a.b
send::
msg ctx.echo (x)
Specify class, untyped object
send::
msg diesel.inv.upsert (className="TestClassInv1", entity :JSON)
expect:: (payload[="key"] is "akey")
Typed version - by key, don't specify the class anymore (the entities have a field called key):
send::
msg diesel.inv.upsert (entity)
expect:: ( ((payload as string) contains "tc21"))
send::
msg diesel.inv.upsert (entity)
expect:: ( ((payload as string) contains "tc11"))
Typed version - by ref - the entities have a field called assetRef - this is the default diesel asset reference.
send::
msg diesel.inv.upsert (entity)
expect:: ( ((payload as string) contains "tc12"))
send::
msg diesel.db.memshared.get (collection="TestClassInv1", id="tc12")
expect:: ( ((payload as string) contains "tc12"))
// ### QUERY
send::
msg diesel.inv.listAll (className="TestClassInv1")
expect:: (payload[="data"] is Array)
send::
msg ctx.echo (x)
send::
msg diesel.inv.find (className="TestClassInv1", key="tc11")
expect:: (payload is Json)
send:: msg (tc11[="x"]="xattr")
send::
msg diesel.inv.upsert (entity)
send::
msg diesel.inv.find (className="TestClassInv1", key)
expect:: (payload[="x"] is "xattr")
send::
msg ctx.set (payload :Array=[..])
send::
msg diesel.inv.query (className="TestClassInv1", query :JSON)
expect:: (payload[="data"][="0"=0][:String="x"] is "xattr")
send::
msg diesel.inv.remove (className="TestClassInv1", key="tc100")
send::
msg diesel.inv.find (className="TestClassInv1", key)
expect:: (payload is undefined)
You need to log in to post a comment!