summaryrefslogtreecommitdiff
path: root/funcs/coll_test.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2024-01-25 20:11:31 -0500
committerGitHub <noreply@github.com>2024-01-25 20:11:31 -0500
commitebb97fb7367fb983cffc1935a8fb57e4b80f5249 (patch)
tree43ef6cd01f629f60f59efe1e5b003f7c8e3a1257 /funcs/coll_test.go
parentf1d9158ea99abbe556251c1ff2fe970f3b460ee9 (diff)
Move funcs package to internal (#1977)
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'funcs/coll_test.go')
-rw-r--r--funcs/coll_test.go179
1 files changed, 0 insertions, 179 deletions
diff --git a/funcs/coll_test.go b/funcs/coll_test.go
deleted file mode 100644
index 71900a59..00000000
--- a/funcs/coll_test.go
+++ /dev/null
@@ -1,179 +0,0 @@
-package funcs
-
-import (
- "context"
- "reflect"
- "strconv"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-)
-
-func TestCreateCollFuncs(t *testing.T) {
- t.Parallel()
-
- for i := 0; i < 10; i++ {
- // Run this a bunch to catch race conditions
- t.Run(strconv.Itoa(i), func(t *testing.T) {
- t.Parallel()
-
- ctx := context.Background()
- fmap := CreateCollFuncs(ctx)
- actual := fmap["coll"].(func() interface{})
-
- assert.Equal(t, ctx, actual().(*CollFuncs).ctx)
- })
- }
-}
-
-func TestFlatten(t *testing.T) {
- t.Parallel()
-
- c := CollFuncs{}
-
- _, err := c.Flatten()
- assert.Error(t, err)
-
- _, err = c.Flatten(42)
- assert.Error(t, err)
-
- out, err := c.Flatten([]interface{}{1, []interface{}{[]int{2}, 3}})
- require.NoError(t, err)
- assert.EqualValues(t, []interface{}{1, 2, 3}, out)
-
- out, err = c.Flatten(1, []interface{}{1, []interface{}{[]int{2}, 3}})
- require.NoError(t, err)
- assert.EqualValues(t, []interface{}{1, []int{2}, 3}, out)
-}
-
-func TestPick(t *testing.T) {
- t.Parallel()
-
- c := &CollFuncs{}
-
- _, err := c.Pick()
- assert.Error(t, err)
-
- _, err = c.Pick("")
- assert.Error(t, err)
-
- _, err = c.Pick("foo", nil)
- assert.Error(t, err)
-
- _, err = c.Pick("foo", "bar")
- assert.Error(t, err)
-
- _, err = c.Pick(map[string]interface{}{}, "foo", "bar", map[string]interface{}{})
- assert.Error(t, err)
-
- in := map[string]interface{}{
- "foo": "bar",
- "bar": true,
- "": "baz",
- }
- out, err := c.Pick("baz", in)
- require.NoError(t, err)
- assert.EqualValues(t, map[string]interface{}{}, out)
-
- expected := map[string]interface{}{
- "foo": "bar",
- "bar": true,
- }
- out, err = c.Pick("foo", "bar", in)
- require.NoError(t, err)
- assert.EqualValues(t, expected, out)
-
- expected = map[string]interface{}{
- "": "baz",
- }
- out, err = c.Pick("", in)
- require.NoError(t, err)
- assert.EqualValues(t, expected, out)
-
- out, err = c.Pick("foo", "bar", "", in)
- require.NoError(t, err)
- assert.EqualValues(t, in, out)
-}
-
-func TestOmit(t *testing.T) {
- t.Parallel()
-
- c := &CollFuncs{}
-
- _, err := c.Omit()
- assert.Error(t, err)
-
- _, err = c.Omit("")
- assert.Error(t, err)
-
- _, err = c.Omit("foo", nil)
- assert.Error(t, err)
-
- _, err = c.Omit("foo", "bar")
- assert.Error(t, err)
-
- _, err = c.Omit(map[string]interface{}{}, "foo", "bar", map[string]interface{}{})
- assert.Error(t, err)
-
- in := map[string]interface{}{
- "foo": "bar",
- "bar": true,
- "": "baz",
- }
- out, err := c.Omit("baz", in)
- require.NoError(t, err)
- assert.EqualValues(t, in, out)
-
- expected := map[string]interface{}{
- "foo": "bar",
- "bar": true,
- }
- out, err = c.Omit("", in)
- require.NoError(t, err)
- assert.EqualValues(t, expected, out)
-
- expected = map[string]interface{}{
- "": "baz",
- }
- out, err = c.Omit("foo", "bar", in)
- require.NoError(t, err)
- assert.EqualValues(t, expected, out)
-
- out, err = c.Omit("foo", "bar", "", in)
- require.NoError(t, err)
- assert.EqualValues(t, map[string]interface{}{}, out)
-}
-
-func TestGoSlice(t *testing.T) {
- t.Parallel()
-
- c := &CollFuncs{}
-
- in := reflect.ValueOf(nil)
- _, err := c.GoSlice(in)
- assert.Error(t, err)
-
- in = reflect.ValueOf(42)
- _, err = c.GoSlice(in)
- assert.Error(t, err)
-
- // invalid index type
- in = reflect.ValueOf([]interface{}{1})
- _, err = c.GoSlice(in, reflect.ValueOf([]interface{}{[]int{2}}))
- assert.Error(t, err)
-
- // valid slice, no slicing
- in = reflect.ValueOf([]int{1})
- out, err := c.GoSlice(in)
- require.NoError(t, err)
- assert.Equal(t, reflect.TypeOf([]int{}), out.Type())
- assert.EqualValues(t, []int{1}, out.Interface())
-
- // valid slice, slicing
- in = reflect.ValueOf([]string{"foo", "bar", "baz"})
- out, err = c.GoSlice(in, reflect.ValueOf(1), reflect.ValueOf(3))
- require.NoError(t, err)
- assert.Equal(t, reflect.TypeOf([]string{}), out.Type())
- assert.EqualValues(t, []string{"bar", "baz"}, out.Interface())
-}