diff --git a/conformance/src/test/java/dev/cel/conformance/policy/PolicyConformanceTest.java b/conformance/src/test/java/dev/cel/conformance/policy/PolicyConformanceTest.java index d7851bb72..7c25c3a19 100644 --- a/conformance/src/test/java/dev/cel/conformance/policy/PolicyConformanceTest.java +++ b/conformance/src/test/java/dev/cel/conformance/policy/PolicyConformanceTest.java @@ -32,6 +32,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Locale; +import java.util.Map; import org.junit.runners.model.Statement; /** Statement representing a single CEL policy conformance test case. */ @@ -40,21 +41,30 @@ public final class PolicyConformanceTest extends Statement { private static final Cel CEL = CelFactory.standardCelBuilder() .addFunctionBindings( - CelFunctionBinding.fromOverloads( - "locationCode", - CelFunctionBinding.from( - "locationCode_string", - String.class, - (ip) -> { - switch (ip) { - case "10.0.0.1": - return "us"; - case "10.0.0.2": - return "de"; - default: - return "ir"; - } - }))) + CelFunctionBinding.from( + "locationCode_string", + String.class, + (ip) -> { + switch (ip) { + case "10.0.0.1": + return "us"; + case "10.0.0.2": + return "de"; + default: + return "ir"; + } + }), + CelFunctionBinding.from( + "classifier_has_credit_card", + Object.class, + (arg) -> arg instanceof Map && ((Map) arg).containsKey("cc")), + CelFunctionBinding.from( + "classifier_has_email_or_phone", + Object.class, + (arg) -> + arg instanceof Map + && (((Map) arg).containsKey("email") + || ((Map) arg).containsKey("phone")))) .build(); private final String name;