#!/bin/sh

. ./_testcase

POST /databases/${DB}/trees/one/item/aaa a-value
POST /databases/${DB}/trees/one/item/bbb b-value
POST /databases/${DB}/trees/one/item/ccc c-value

POST /databases/${DB}/trees/two/item/bbb b-value
POST /databases/${DB}/trees/two/item/ccc c-value
POST /databases/${DB}/trees/two/item/ddd d-value

GET /databases/${DB}/trees/one
Assert '{"items": [["aaa","a-value"],["bbb","b-value"],["ccc","c-value"]]}'

GET /databases/${DB}/trees/two
Assert '{"items": [["bbb","b-value"],["ccc","c-value"],["ddd","d-value"]]}'

# Union

GET /databases/${DB}/trees/one/union/two
Assert '{"items": [["aaa","a-value"],["bbb","b-value"],["ccc","c-value"],["ddd","d-value"]]}'

GET /databases/${DB}/trees/one/union/two\?values=all
Assert '{"items": [["aaa","a-value"],["bbb","b-value"],["ccc","c-value"],["ddd","d-value"]]}'

GET /databases/${DB}/trees/one/union/two\?values=keys
Assert '{"items": ["aaa","bbb","ccc","ddd"]}'

GET /databases/${DB}/trees/one/union/two\?values=values
Assert '{"items": ["a-value","b-value","c-value","d-value"]}'

# Counts

GET /databases/${DB}/trees/one/union/two/count
Assert '{"count": 4}'


# empty tree one or two

POST /databases/${DB}/trees/a/item/aaa a-value
POST /databases/${DB}/trees/a/item/bbb b-value

POST /databases/${DB}/trees/b/item/aaa a-value
POST /databases/${DB}/trees/b/item/aaa ""

GET /databases/${DB}/trees/a/union/b/count
Assert '{"count": 2}'

GET /databases/${DB}/trees/a/union/b
Assert '{"items": [["aaa","a-value"],["bbb","b-value"]]}'

GET /databases/${DB}/trees/b/union/a
Assert '{"items": [["aaa","a-value"],["bbb","b-value"]]}'
