From ff0cac995afbbbea8ddd06070ba31c8b07e10c83 Mon Sep 17 00:00:00 2001
From: Joes <j.dejonge@students.uu.nl>
Date: Thu, 4 Nov 2021 12:14:16 +0100
Subject: [PATCH] tests changed with new pdict typename of groupby

---
 aql/hierarchy_test.go | 128 ++++++++++++++++++++++++++++--------------
 1 file changed, 87 insertions(+), 41 deletions(-)

diff --git a/aql/hierarchy_test.go b/aql/hierarchy_test.go
index bcf77f4..e2a7195 100644
--- a/aql/hierarchy_test.go
+++ b/aql/hierarchy_test.go
@@ -173,9 +173,6 @@ func TestHierarchyRandomStart(t *testing.T) {
 			sort.Sort(k)
 			sortedListOfLists[i] = k
 		}
-		fmt.Println(listoflists)
-		fmt.Println(sortedListOfLists)
-		//for i, x := range listoflists
 		assert.Equal(t, fmt.Sprint(correctResult), fmt.Sprint(sortedListOfLists))
 	}
 
@@ -188,75 +185,127 @@ func TestHierarchyWithGroupby(t *testing.T) {
 		"return": {
 			"entities": [
 				0,
-				1
+				1,
+				2,
+				3
 			],
 			"relations": [
-				0
-			],
-			"groupBys": []
+				0,
+				1,
+				2
+			]
 		},
 		"entities": [
 			{
-				"name": "parties",
-				"ID": 1
+				"ID": 0,
+				"name": "parliament"
 			},
-			
 			{
-				"name": "parliament",
-				"ID": 0
+				"ID": 1,
+				"name": "commissions"
+			},
+			{
+				"ID": 2,
+				"name": "parliament"
+			},
+			{
+				"ID": 3,
+				"name": "resolutions"
 			}
 		],
 		"relations": [
 			{
-				"ID": 0,
-				"name": "member_of",
+				"type": "part_of",
 				"depth": {
 					"min": 1,
 					"max": 1
 				},
 				"fromType": "entity",
-				"fromID": 0,
+				"fromId": 0,
 				"toType": "entity",
 				"toID": 1
+	   
+			},
+			{
+				"type": "part_of",
+				"depth": {
+					"min": 1,
+					"max": 1
+				},
+				"fromType": "groupBy",
+				"fromID": 0,
+				"toType": "entity",
+				"toID": 2
+	   
+			},
+			{
+				"type": "submits",
+				"depth": {
+					"min": 1,
+					"max": 1
+				},
+				"fromType": "entity",
+				"fromID": 2,
+				"toType": "entity",
+				"toID": 3
+			}
+		],
+		"groupBys": [
+			{
+				"ID": 0,
+				"groupType": "entity",
+				"groupID": 0,
+				"groupAttribute": "age",
+				"byType": "entity",
+				"byID": 1,
+				"byAttribute": "name",
+				"appliedModifier": "AVG",
+				"relationID": 0,
+				"constraints": [
+					{
+						"attribute": "age",
+						"value": "45",
+						"dataType": "number",
+						"matchType": "GT",
+						"functionPointer": {
+							"from": -1,
+							"to": -1
+						}
+			   
+					}
+				]
 			}
 		],
-		"groupBys": [],
 		"filters": [
 			{
 				"ID": 0,
-				"filteredType": "entity",
-				"filteredID": 0,
+				"fromType": "groupBy",
+				"fromID": 0,
+				"toType": "relation",
+				"toID": 1,
 				"attribute": "age",
-				"dataType": "int",
-				"matchType": "NEQ",
-				"value": "40",
+				"value": "45",
+				"dataType": "number",
+				"matchType": "GT",
 				"inType": "",
-				"inID": 0
-			},
-			{
-				"ID": 1,
-				"filteredType": "relation",
-				"filteredID": 0,
-				"attribute": "isChairman",
-				"dataType": "bool",
-				"matchType": "exact",
-				"value": "true",
-				"inType": "",
-				"inID": 0
+				"inID": -1
 			}
 		],
-		"limit": 5000
+		"limit": 5000,
+		"modifiers": [],
+		"databaseName": "TweedeKamer"
 	}
 	`)
 
 	// Unmarshall the incoming message into an IncomingJSONQuery object
 	var JSONQuery entity.IncomingQueryJSON
 	json.Unmarshal(query, &JSONQuery)
-	correctResult := make([]pdictList, 4)
+	correctResult := make([]pdictList, 5)
 	correctResult[0] = pdictList{{typename: "entity", pointer: 0}, {typename: "entity", pointer: 1}}
-	correctResult[1] = pdictList{{typename: "filter", pointer: 0}}
-	correctResult[2] = pdictList{{typename: "relation", pointer: 0}}
-	correctResult[3] = pdictList{{typename: "filter", pointer: 1}}
+	correctResult[1] = pdictList{{typename: "relation", pointer: 0}}
+	correctResult[2] = pdictList{{typename: "entity", pointer: 2}, {typename: "entity", pointer: 3}, {typename: "groupBy", pointer: 0}}
+	correctResult[3] = pdictList{{typename: "filter", pointer: 0}}
+	correctResult[4] = pdictList{{typename: "relation", pointer: 1}, {typename: "relation", pointer: 2}}
 
 	for i := range JSONQuery.Entities {
 		search(&JSONQuery, i)
@@ -267,9 +316,6 @@ func TestHierarchyWithGroupby(t *testing.T) {
 			sort.Sort(k)
 			sortedListOfLists[i] = k
 		}
-		fmt.Println(listoflists)
-		fmt.Println(sortedListOfLists)
-		//for i, x := range listoflists
 		assert.Equal(t, fmt.Sprint(correctResult), fmt.Sprint(sortedListOfLists))
 	}
 
-- 
GitLab