From 263f7d02a523580ff12e59c2bb493f2e8e00724f Mon Sep 17 00:00:00 2001 From: lqs Date: Tue, 30 Apr 2019 18:50:50 +0800 Subject: [PATCH] add test --- case_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 case_test.go diff --git a/case_test.go b/case_test.go new file mode 100644 index 0000000..29f353a --- /dev/null +++ b/case_test.go @@ -0,0 +1,34 @@ +package sqlingo + +import ( + "errors" + "testing" +) + +func TestCase(t *testing.T) { + c1 := expression{ + builder: func(scope scope) (string, error) { + return "c1", nil + }, + } + c2 := expression{ + builder: func(scope scope) (string, error) { + return "c2", nil + }, + } + assertValue(t, Case().WhenThen(c1, 1).WhenThen(c2, 2), + "CASE WHEN c1 THEN 1 WHEN c2 THEN 2 END") + assertValue(t, Case().WhenThen(c1, 1).WhenThen(c2, 2).Else(0), + "CASE WHEN c1 THEN 1 WHEN c2 THEN 2 ELSE 0 END") + assertValue(t, Case().Else(0), + "0") + + ee := expression{ + builder: func(scope scope) (string, error) { + return "", errors.New("error") + }, + } + assertError(t, Case().WhenThen(ee, 2)) + assertError(t, Case().WhenThen(c1, ee)) + assertError(t, Case().WhenThen(c1, 1).Else(ee)) +}