Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package aql
import (
"encoding/json"
"fmt"
"testing"
"git.science.uu.nl/graphpolaris/query-conversion/entity"
"github.com/stretchr/testify/assert"
)
func TestHierarchyBasic(t *testing.T) {
// Setup for test
// Create query conversion service
query := []byte(`{
"return": {
"entities": [
0,
1
],
"relations": [
0
],
"groupBys": []
},
"entities": [
{
"name": "parliament",
"ID": 0
},
{
"name": "parties",
"ID": 1
}
],
"relations": [
{
"ID": 0,
"name": "member_of",
"depth": {
"min": 1,
"max": 1
},
"fromType": "entity",
"fromID": 0,
"toType": "entity",
"toID": 1
}
],
"groupBys": [],
"filters": [
{
"ID": 0,
"filteredType": "entity",
"filteredID": 0,
"attribute": "age",
"dataType": "int",
"matchType": "NEQ",
"value": "40",
"inType": "",
"inID": 0
},
{
"ID": 1,
"filteredType": "relation",
"filteredID": 0,
"attribute": "isChairman",
"dataType": "bool",
"matchType": "exact",
"value": "true",
"inType": "",
"inID": 0
}
],
"limit": 5000
}
`)
// Unmarshall the incoming message into an IncomingJSONQuery object
var JSONQuery entity.IncomingQueryJSON
json.Unmarshal(query, &JSONQuery)
search(&JSONQuery)
// Assert that the result and the expected result are the same
correctResult := `[[{entity 0} {entity 1}] [{filter 0}] [{relation 0}] [{filter 1}]]`
assert.Equal(t, correctResult, fmt.Sprint(listoflists))
}