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)) }