From ddb677bc69e941dc33d62f6e4ff5877e29462943 Mon Sep 17 00:00:00 2001
From: Yoav Hizkiahou <yoav.hizkiahou@aquasec.com>
Date: Tue, 21 May 2019 14:10:11 +0300
Subject: [PATCH] Generate expected result by strings join

---
 check/test.go | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/check/test.go b/check/test.go
index 9e2746b..d27750a 100644
--- a/check/test.go
+++ b/check/test.go
@@ -219,8 +219,11 @@ func (ts *tests) execute(s string) *testOutput {
 		return finalOutput
 	}
 
+	expectedResultArr := make([]string, len(res))
+
 	for i, t := range ts.TestItems {
 		res[i] = *(t.execute(s))
+		expectedResultArr[i] = res[i].ExpectedResult
 	}
 
 	var result bool
@@ -232,19 +235,18 @@ func (ts *tests) execute(s string) *testOutput {
 	case and, "":
 		result = true
 		for i := range res {
-			finalOutput.ExpectedResult += fmt.Sprintf("%s AND ", res[i].ExpectedResult)
 			result = result && res[i].testResult
 		}
-		// Delete last iteration ' AND '
-		finalOutput.ExpectedResult = finalOutput.ExpectedResult[:len(finalOutput.ExpectedResult)-5]
+		// Generate an AND expected result
+		finalOutput.ExpectedResult = strings.Join(expectedResultArr, " AND ")
+
 	case or:
 		result = false
 		for i := range res {
-			finalOutput.ExpectedResult += fmt.Sprintf("%s OR ", res[i].ExpectedResult)
 			result = result || res[i].testResult
 		}
-		// Delete last iteration ' OR '
-		finalOutput.ExpectedResult = finalOutput.ExpectedResult[:len(finalOutput.ExpectedResult)-4]
+		// Generate an OR expected result
+		finalOutput.ExpectedResult = strings.Join(expectedResultArr, " OR ")
 	}
 
 	finalOutput.testResult = result
-- 
GitLab