MCPcopy Create free account
hub / github.com/cel-expr/cel-go / TestOverloadFunctionLateBindingWithBinding

Function TestOverloadFunctionLateBindingWithBinding

common/decls/decls_test.go:798–828  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

796}
797
798func TestOverloadFunctionLateBindingWithBinding(t *testing.T) {
799 _, err := NewFunction("id",
800 Overload("id_bool", []*types.Type{types.BoolType}, types.AnyType, LateFunctionBinding(),
801 FunctionBinding(func(args ...ref.Val) ref.Val {
802 return args[0]
803 })),
804 )
805 if err == nil || !strings.Contains(err.Error(), "already has a late binding") {
806 t.Errorf("NewCustomEnv() got %v, wanted already has a late binding", err)
807 }
808
809 _, err = NewFunction("id",
810 Overload("id_bool", []*types.Type{types.BoolType}, types.AnyType, LateFunctionBinding(),
811 UnaryBinding(func(arg ref.Val) ref.Val {
812 return arg
813 })),
814 )
815 if err == nil || !strings.Contains(err.Error(), "already has a late binding") {
816 t.Errorf("NewCustomEnv() got %v, wanted already has a late binding", err)
817 }
818
819 _, err = NewFunction("id",
820 Overload("id_bool", []*types.Type{types.BoolType, types.BoolType}, types.AnyType, LateFunctionBinding(),
821 BinaryBinding(func(arg1 ref.Val, arg2 ref.Val) ref.Val {
822 return arg1
823 })),
824 )
825 if err == nil || !strings.Contains(err.Error(), "already has a late binding") {
826 t.Errorf("NewCustomEnv() got %v, wanted already has a late binding", err)
827 }
828}
829
830func TestOverloadIsNonStrict(t *testing.T) {
831 fn, err := NewFunction("getOrDefault",

Callers

nothing calls this directly

Calls 8

NewFunctionFunction · 0.70
OverloadFunction · 0.70
LateFunctionBindingFunction · 0.70
FunctionBindingFunction · 0.70
UnaryBindingFunction · 0.70
BinaryBindingFunction · 0.70
ContainsMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected