From c81aa5859d421e995f42ff0738142692b21f5a98 Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Thu, 13 Mar 2025 18:52:30 +0800 Subject: [PATCH] (improvement)(headless)Add unit test case for variable if statement. --- .../server/utils/SqlVariableParseUtilsTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/SqlVariableParseUtilsTest.java b/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/SqlVariableParseUtilsTest.java index b5ab31878..36f799154 100644 --- a/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/SqlVariableParseUtilsTest.java +++ b/headless/server/src/test/java/com/tencent/supersonic/headless/server/utils/SqlVariableParseUtilsTest.java @@ -34,6 +34,18 @@ public class SqlVariableParseUtilsTest { Assertions.assertEquals(expectedSql, actualSql); } + @Test + void testParseSql_if() { + String sql = "select * from t_$interval$ where id = $id$ $if(name)$and name = $name$$endif$"; + List variables = Lists.newArrayList(mockNumSqlVariable(), + mockExprSqlVariable(), mockStrSqlVariable()); + List params = + Lists.newArrayList(mockIdParam(), mockNameParam(), mockIntervalParam()); + String actualSql = SqlVariableParseUtils.parse(sql, variables, params); + String expectedSql = "select * from t_wk where id = 2 and name = 'alice'"; + Assertions.assertEquals(expectedSql, actualSql); + } + private SqlVariable mockNumSqlVariable() { return mockSqlVariable("id", VariableValueType.NUMBER, 1); }