From c56afd4fc9f29b66e942103f365e948f1bb6b623 Mon Sep 17 00:00:00 2001 From: ConaGo Date: Tue, 6 Jul 2021 10:42:53 +0200 Subject: [PATCH 1/3] added tests for runtime/expressions/variable --- pkg/runtime/expressions/variable_test.go | 69 ++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 pkg/runtime/expressions/variable_test.go diff --git a/pkg/runtime/expressions/variable_test.go b/pkg/runtime/expressions/variable_test.go new file mode 100644 index 00000000..5fd771f7 --- /dev/null +++ b/pkg/runtime/expressions/variable_test.go @@ -0,0 +1,69 @@ +package expressions_test + +import ( + "context" + "testing" + + . "github.com/smartystreets/goconvey/convey" + + "github.com/MontFerret/ferret/pkg/runtime/core" + "github.com/MontFerret/ferret/pkg/runtime/expressions" + "github.com/MontFerret/ferret/pkg/runtime/values" +) +var sourceMap = core.NewSourceMap("hello", 2, 3) +var rootScope, _ = core.NewRootScope() +var _ = rootScope.SetVariable("key", values.NewString("value")) + +func TestNewVariableExpression(t *testing.T) { + + Convey("Should not throw error and create a VariableExpression given correct arguments", t, func() { + ret, err := expressions.NewVariableExpression(sourceMap, "foo") + + So(ret, ShouldHaveSameTypeAs, &expressions.VariableExpression{}) + So(err, ShouldBeNil) + }) + + Convey("Should throw error when given no name argument", t, func() { + _, err := expressions.NewVariableExpression(sourceMap, "") + + So(err, ShouldHaveSameTypeAs, core.ErrMissedArgument) + }) + + Convey("Calling .Exec should return the correct variable set in the given scope", t, func() { + ret, _ := expressions.NewVariableExpression(sourceMap, "key") + value, err := ret.Exec(context.TODO(), rootScope) + + So(value, ShouldEqual, "value") + So(err, ShouldBeNil) + }) +} + +func TestNewVariableDeclarationExpression(t *testing.T) { + Convey("Should not throw error and create a NewVariableDeclarationExpression given correct arguments", t, func() { + variableExpression, _ := expressions.NewVariableExpression(sourceMap, "foo") + ret, err := expressions.NewVariableDeclarationExpression(sourceMap, "test", variableExpression) + + So(ret, ShouldHaveSameTypeAs, &expressions.VariableDeclarationExpression{}) + So(err, ShouldBeNil) + }) + + Convey("Should throw error if init argument is nil", t, func() { + _, err := expressions.NewVariableDeclarationExpression(sourceMap, "test", nil) + + So(err, ShouldHaveSameTypeAs, core.ErrMissedArgument) + }) + + Convey("Calling .Exec should add the value retrieved by its VariableExpression with its own name as key to the given scope", t, func() { + variableExpression, _ := expressions.NewVariableExpression(sourceMap, "key") + variableDeclarationExpression, _ := expressions.NewVariableDeclarationExpression(sourceMap, "keyTwo", variableExpression) + _, err := variableDeclarationExpression.Exec(context.TODO(), rootScope) + + So(err, ShouldBeNil) + + value, _ := rootScope.GetVariable("key") + value2, _ := rootScope.GetVariable("keyTwo") + + So(value, ShouldEqual, "value") + So(value2, ShouldEqual, "value") + }) +} \ No newline at end of file From 1c1b6e957e9e3be92fddad98e8182a2443f1a442 Mon Sep 17 00:00:00 2001 From: Lennart Jasper Date: Fri, 9 Jul 2021 11:11:40 +0200 Subject: [PATCH 2/3] added newline to statisfy the linter --- pkg/runtime/expressions/variable_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/runtime/expressions/variable_test.go b/pkg/runtime/expressions/variable_test.go index 5fd771f7..57d53507 100644 --- a/pkg/runtime/expressions/variable_test.go +++ b/pkg/runtime/expressions/variable_test.go @@ -66,4 +66,4 @@ func TestNewVariableDeclarationExpression(t *testing.T) { So(value, ShouldEqual, "value") So(value2, ShouldEqual, "value") }) -} \ No newline at end of file +} From 6fea3d7dfcfb56bc42ebcef8ef10a4b30f9aa1ce Mon Sep 17 00:00:00 2001 From: Lennart Jasper Date: Sat, 10 Jul 2021 07:08:16 +0200 Subject: [PATCH 3/3] found the go fmt command :) --- pkg/runtime/expressions/variable_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/runtime/expressions/variable_test.go b/pkg/runtime/expressions/variable_test.go index 57d53507..3bfdac4c 100644 --- a/pkg/runtime/expressions/variable_test.go +++ b/pkg/runtime/expressions/variable_test.go @@ -10,12 +10,13 @@ import ( "github.com/MontFerret/ferret/pkg/runtime/expressions" "github.com/MontFerret/ferret/pkg/runtime/values" ) + var sourceMap = core.NewSourceMap("hello", 2, 3) var rootScope, _ = core.NewRootScope() var _ = rootScope.SetVariable("key", values.NewString("value")) func TestNewVariableExpression(t *testing.T) { - + Convey("Should not throw error and create a VariableExpression given correct arguments", t, func() { ret, err := expressions.NewVariableExpression(sourceMap, "foo") @@ -52,7 +53,7 @@ func TestNewVariableDeclarationExpression(t *testing.T) { So(err, ShouldHaveSameTypeAs, core.ErrMissedArgument) }) - + Convey("Calling .Exec should add the value retrieved by its VariableExpression with its own name as key to the given scope", t, func() { variableExpression, _ := expressions.NewVariableExpression(sourceMap, "key") variableDeclarationExpression, _ := expressions.NewVariableDeclarationExpression(sourceMap, "keyTwo", variableExpression)