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!