# proto-file: ../../../proto/cel/expr/conformance/test/simple.proto # proto-message: cel.expr.conformance.test.SimpleTestFile name: "bindings_ext" description: "Tests for the bindings extension library." section: { name: "bind" test: { name: "boolean_literal" expr: "cel.bind(t, true, t)" value: { bool_value: true } } test: { name: "string_concat" expr: "cel.bind(msg, \"hello\", msg + msg + msg)" value: { string_value: "hellohellohello" } } test: { name: "bind_nested" expr: "cel.bind(t1, true, cel.bind(t2, true, t1 && t2))" value: { bool_value: true } } test: { name: "macro_exists" expr: "cel.bind(valid_elems, [1, 2, 3], [3, 4, 5].exists(e, e in valid_elems))" value: { bool_value: true } } test: { name: "macro_not_exists" expr: "cel.bind(valid_elems, [1, 2, 3], ![4, 5].exists(e, e in valid_elems))" value: { bool_value: true } } test: { name: "shadowing" expr: "cel.bind(x, 0, x == 0)" type_env: { name: "x" ident: { type: { primitive: INT64 } } } bindings: { key: "x" value: { value: { int64_value: 1 } } } value: { bool_value: true } } test: { name: "shadowing_namespace_resolution" expr: "cel.bind(x, 0, x == 0)" container: "com.example" type_env: { name: "com.example.x" ident: { type: { primitive: INT64 } } } bindings: { key: "com.example.x" value: { value: { int64_value: 1 } } } value: { bool_value: true } } test: { name: "shadowing_namespace_resolution_selector" expr: "cel.bind(x, {'y': 0}, x.y == 0)" container: "com.example" type_env: { name: "com.example.x.y" ident: { type: { primitive: INT64 } } } bindings: { key: "com.example.x.y" value: { value: { int64_value: 1 } } } value: { bool_value: true } } }