From c8b578cef3e93ae7fd56104290fd817fcab1da33 Mon Sep 17 00:00:00 2001 From: Zonglei Dong Date: Fri, 28 Jul 2023 21:01:07 +0800 Subject: [PATCH] feat(test): add unit test for concat_ws function --- pkg/runtime/function/concat_ws_test.go | 5 ++-- pkg/runtime/function/cume_dist_test.go | 37 +++++++++++++++++++++++ pkg/runtime/function/dense_rank_test.go | 39 ++++++++++++++++++++++++- 3 files changed, 78 insertions(+), 3 deletions(-) diff --git a/pkg/runtime/function/concat_ws_test.go b/pkg/runtime/function/concat_ws_test.go index 89089e55..50c299b2 100644 --- a/pkg/runtime/function/concat_ws_test.go +++ b/pkg/runtime/function/concat_ws_test.go @@ -32,7 +32,8 @@ import ( ) func TestConcatWSFunc_Apply(t *testing.T) { - f := proto.MustGetFunc(FuncConcatWS) + fn := proto.MustGetFunc(FuncConcatWS) + assert.Equal(t, 2, fn.NumInput()) tests := []struct { inputs []proto.Value @@ -87,7 +88,7 @@ func TestConcatWSFunc_Apply(t *testing.T) { for i := range next.inputs { inputs = append(inputs, proto.ToValuer(next.inputs[i])) } - out, err := f.Apply(context.Background(), inputs...) + out, err := fn.Apply(context.Background(), inputs...) assert.NoError(t, err) var actual string diff --git a/pkg/runtime/function/cume_dist_test.go b/pkg/runtime/function/cume_dist_test.go index 23eed956..23264828 100644 --- a/pkg/runtime/function/cume_dist_test.go +++ b/pkg/runtime/function/cume_dist_test.go @@ -33,6 +33,8 @@ import ( func TestFuncCumeDist(t *testing.T) { fn := proto.MustGetFunc(FuncCumeDist) + assert.Equal(t, 0, fn.NumInput()) + type tt struct { inputs []proto.Value want string @@ -125,3 +127,38 @@ func TestFuncCumeDist(t *testing.T) { }) } } + +func TestFuncCumeDist_Error(t *testing.T) { + fn := proto.MustGetFunc(FuncCumeDist) + assert.Equal(t, 0, fn.NumInput()) + + type tt struct { + name string + inputs []proto.Value + } + for _, v := range []tt{ + { + "Test_Nil", + []proto.Value{ + nil, + }, + }, + { + "Test_Nil_1", + []proto.Value{ + proto.NewValueFloat64(5), + nil, + }, + }, + } { + t.Run(v.name, func(t *testing.T) { + var inputs []proto.Valuer + for i := range v.inputs { + inputs = append(inputs, proto.ToValuer(v.inputs[i])) + } + out, err := fn.Apply(context.Background(), inputs...) + assert.Nil(t, err) + assert.Nil(t, out) + }) + } +} diff --git a/pkg/runtime/function/dense_rank_test.go b/pkg/runtime/function/dense_rank_test.go index 646819a6..6eb7eb37 100644 --- a/pkg/runtime/function/dense_rank_test.go +++ b/pkg/runtime/function/dense_rank_test.go @@ -31,8 +31,10 @@ import ( "github.com/arana-db/arana/pkg/proto" ) -func TestFuncDenseRankt(t *testing.T) { +func TestFuncDenseRank(t *testing.T) { fn := proto.MustGetFunc(FuncDenseRank) + assert.Equal(t, 0, fn.NumInput()) + type tt struct { inputs []proto.Value want string @@ -125,3 +127,38 @@ func TestFuncDenseRankt(t *testing.T) { }) } } + +func TestFuncDenseRank_Error(t *testing.T) { + fn := proto.MustGetFunc(FuncDenseRank) + assert.Equal(t, 0, fn.NumInput()) + + type tt struct { + name string + inputs []proto.Value + } + for _, v := range []tt{ + { + "Test_Nil", + []proto.Value{ + nil, + }, + }, + { + "Test_Nil_1", + []proto.Value{ + proto.NewValueFloat64(5), + nil, + }, + }, + } { + t.Run(v.name, func(t *testing.T) { + var inputs []proto.Valuer + for i := range v.inputs { + inputs = append(inputs, proto.ToValuer(v.inputs[i])) + } + out, err := fn.Apply(context.Background(), inputs...) + assert.Nil(t, err) + assert.Nil(t, out) + }) + } +}