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

Function TestOverloadFunctionLateBindingWithBinding

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

Source from the content-addressed store, hash-verified

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