| 47 | } |
| 48 | |
| 49 | void ExpectResult(const TestCase& test_case) { |
| 50 | auto parsed_expr = parser::Parse(test_case.expr); |
| 51 | ASSERT_OK(parsed_expr); |
| 52 | const Expr& expr_ast = parsed_expr->expr(); |
| 53 | const SourceInfo& source_info = parsed_expr->source_info(); |
| 54 | InterpreterOptions options; |
| 55 | options.enable_timestamp_duration_overflow_errors = true; |
| 56 | options.enable_comprehension_list_append = true; |
| 57 | std::unique_ptr<CelExpressionBuilder> builder = |
| 58 | CreateCelExpressionBuilder(options); |
| 59 | ASSERT_OK(RegisterContainerFunctions(builder->GetRegistry(), options)); |
| 60 | // Needed to avoid error - No overloads provided for FunctionStep creation. |
| 61 | ASSERT_OK(RegisterEqualityFunctions(builder->GetRegistry(), options)); |
| 62 | ASSERT_OK_AND_ASSIGN(auto cel_expression, |
| 63 | builder->CreateExpression(&expr_ast, &source_info)); |
| 64 | |
| 65 | Activation activation; |
| 66 | |
| 67 | google::protobuf::Arena arena; |
| 68 | ASSERT_OK_AND_ASSIGN(auto value, |
| 69 | cel_expression->Evaluate(activation, &arena)); |
| 70 | EXPECT_THAT(value, test::EqualsCelValue(*test_case.result)); |
| 71 | } |
| 72 | |
| 73 | using ContainerFunctionParamsTest = testing::TestWithParam<TestCase>; |
| 74 | TEST_P(ContainerFunctionParamsTest, StandardFunctions) { |
no test coverage detected