diff --git a/tests/simple/testdata/enums.textproto b/tests/simple/testdata/enums.textproto index b51a5dd..558e929 100644 --- a/tests/simple/testdata/enums.textproto +++ b/tests/simple/testdata/enums.textproto @@ -104,6 +104,49 @@ section { } } } + test { + name: "access_repeated_enum" + container: "cel.expr.conformance.proto2" + expr: "TestAllTypes{}.repeated_nested_enum" + value { + list_value {} + } + } + test { + name: "assign_repeated_enum" + container: "cel.expr.conformance.proto2" + expr: + "TestAllTypes{" + " repeated_nested_enum: [" + " TestAllTypes.NestedEnum.FOO," + " TestAllTypes.NestedEnum.BAR]}" + value { + object_value { + [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { + repeated_nested_enum: FOO + repeated_nested_enum: BAR + } + } + } + } + test { + name: "list_enum_as_list_int" + container: "cel.expr.conformance.proto2" + expr: + "0 in " + "TestAllTypes{" + " repeated_nested_enum: [" + " TestAllTypes.NestedEnum.FOO," + " TestAllTypes.NestedEnum.BAR]}" + ".repeated_nested_enum" + value: { bool_value: true } + } + test { + name: "enum_as_int" + container: "cel.expr.conformance.proto2" + expr: "TestAllTypes{standalone_enum: TestAllTypes.NestedEnum.FOO}.standalone_enum in [0]" + value: { bool_value: true } + } } section { name: "legacy_proto3" @@ -302,6 +345,49 @@ section { } } } + test { + name: "access_repeated_enum" + container: "cel.expr.conformance.proto2" + expr: "TestAllTypes{}.repeated_nested_enum" + value { + list_value {} + } + } + test { + name: "assign_repeated_enum" + container: "cel.expr.conformance.proto2" + expr: + "TestAllTypes{" + " repeated_nested_enum: [" + " TestAllTypes.NestedEnum.FOO," + " TestAllTypes.NestedEnum.BAR]}" + value { + object_value { + [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { + repeated_nested_enum: FOO + repeated_nested_enum: BAR + } + } + } + } + test { + name: "list_enum_as_list_int" + container: "cel.expr.conformance.proto2" + expr: + "0 in " + "TestAllTypes{" + " repeated_nested_enum: [" + " TestAllTypes.NestedEnum.FOO," + " TestAllTypes.NestedEnum.BAR]}" + ".repeated_nested_enum" + value: { bool_value: true } + } + test { + name: "enum_as_int" + container: "cel.expr.conformance.proto2" + expr: "TestAllTypes{standalone_enum: TestAllTypes.NestedEnum.FOO}.standalone_enum in [0]" + value: { bool_value: true } + } } section { name: "strong_proto2" diff --git a/tests/simple/testdata/proto2.textproto b/tests/simple/testdata/proto2.textproto index 90acda1..0662b06 100644 --- a/tests/simple/testdata/proto2.textproto +++ b/tests/simple/testdata/proto2.textproto @@ -588,6 +588,13 @@ section { value: { list_value: {} } } + test { + name: "repeated_enum" + container: "cel.expr.conformance.proto3" + expr: "TestAllTypes{}.repeated_nested_enum" + value: { list_value: {} } + } + test { name: "repeated_nested" container: "cel.expr.conformance.proto2" diff --git a/tests/simple/testdata/proto3.textproto b/tests/simple/testdata/proto3.textproto index 5b9fbe3..2a0378d 100644 --- a/tests/simple/testdata/proto3.textproto +++ b/tests/simple/testdata/proto3.textproto @@ -497,6 +497,13 @@ section { value: { list_value: {} } } + test { + name: "repeated_enum" + container: "cel.expr.conformance.proto3" + expr: "TestAllTypes{}.repeated_nested_enum" + value: { list_value: {} } + } + test { name: "repeated_nested" container: "cel.expr.conformance.proto3" diff --git a/tests/simple/testdata/type_deduction.textproto b/tests/simple/testdata/type_deduction.textproto index f0ec235..478348c 100644 --- a/tests/simple/testdata/type_deduction.textproto +++ b/tests/simple/testdata/type_deduction.textproto @@ -193,6 +193,46 @@ section { } } } + test { + name: "enum_field" + container: "cel.expr.conformance.proto3" + expr: "TestAllTypes{}.standalone_enum" + typed_result { + result { + int64_value: 0 + } + deduced_type { primitive: INT64 } + } + } + test { + name: "repeated_enum_field" + container: "cel.expr.conformance.proto3" + expr: "TestAllTypes{}.repeated_nested_enum" + typed_result { + result { + list_value {} + } + deduced_type { + list_type { elem_type { primitive: INT64 } } + } + } + } + test { + name: "enum_map_field" + container: "cel.expr.conformance.proto3" + expr: "TestAllTypes{}.map_int32_enum" + typed_result { + result { + map_value {} + } + deduced_type { + map_type { + key_type { primitive: INT64 } + value_type { primitive: INT64 } + } + } + } + } } section {