Skip to content

Commit 8c72b89

Browse files
authored
test: improved test SqlServerInsertRecognizerTest (#7294)
1 parent b7e4856 commit 8c72b89

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

changes/en-us/2.x.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ Add changes here for all PR submitted to the 2.x branch.
5757
- [[#7255](https://github.com/apache/incubator-seata/pull/7255)] more unit tests for Discovery-Eureka
5858
- [[#7286](https://github.com/apache/incubator-seata/pull/7286)] Simplified complex test testMsgSerialize in RaftSyncMessageTest by separating it into two tests
5959
- [[#7287](https://github.com/apache/incubator-seata/pull/7287)] Refactored testGetErrorMsgWithValidCodeReturnsExpectedMsg to use parameterized unit testing
60+
- [[#7294](https://github.com/apache/incubator-seata/pull/7294)] improved test testGetInsertParamsValue in SqlServerInsertRecognizerTest by splitting and parameterizing
6061
- [[#7295](https://github.com/apache/incubator-seata/pull/7295)] updated 3 tests in StringUtilsTest to use parameterized unit testing
6162

6263
### refactor:

changes/zh-cn/2.x.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
- [[#7255](https://github.com/apache/incubator-seata/pull/7255)] 补充更多seata-discovery-eureka模块的单测提高覆盖率
5757
- [[#7286](https://github.com/apache/incubator-seata/pull/7286)] 重构了 RaftSyncMessageTest 中的 testMsgSerialize 测试,通过拆分为两个独立测试以简化逻辑
5858
- [[#7287](https://github.com/apache/incubator-seata/pull/7287)] 重构了 CodeTest 中的 testGetErrorMsgWithValidCodeReturnsExpectedMsg 测试,以简化并使用参数化单元测试。
59+
- [[#7294](https://github.com/apache/incubator-seata/pull/7294)] 重构了 SqlServerInsertRecognizerTest 中的 testGetInsertParamsValue 测试,通过拆分并使用参数化单元测试进行改进
5960
- [[#7295](https://github.com/apache/incubator-seata/pull/7295)] 重构了 StringUtilsTest 中的 3 个测试,改为使用参数化单元测试
6061

6162
### refactor:

sqlparser/seata-sqlparser-druid/src/test/java/org/apache/seata/sqlparser/druid/sqlserver/SqlServerInsertRecognizerTest.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Arrays;
2020
import java.util.Collections;
2121
import java.util.List;
22+
import java.util.stream.Stream;
2223

2324
import com.alibaba.druid.sql.ast.SQLStatement;
2425
import com.alibaba.druid.sql.ast.expr.SQLDateExpr;
@@ -31,6 +32,9 @@
3132
import org.apache.seata.sqlparser.util.JdbcConstants;
3233
import org.junit.jupiter.api.Assertions;
3334
import org.junit.jupiter.api.Test;
35+
import org.junit.jupiter.params.ParameterizedTest;
36+
import org.junit.jupiter.params.provider.Arguments;
37+
import org.junit.jupiter.params.provider.MethodSource;
3438

3539
/**
3640
* The type SqlServer insert recognizer test.
@@ -229,18 +233,21 @@ public void testGetSQLType() {
229233
Assertions.assertEquals(SQLType.INSERT, recognizer.getSQLType());
230234
}
231235

232-
@Test
233-
public void testGetInsertParamsValue() {
234-
String sql = "INSERT INTO t(a) VALUES (?)";
236+
@ParameterizedTest
237+
@MethodSource("provideSqlWithExplicitValues")
238+
void testGetInsertParamsValueForExplicitValues(String sql, Object expectedValue) {
235239
SQLStatement ast = getSQLStatement(sql);
236240
SqlServerInsertRecognizer recognizer = new SqlServerInsertRecognizer(sql, ast);
237-
Assertions.assertEquals("?", recognizer.getInsertParamsValue().get(0));
241+
Assertions.assertEquals(expectedValue, recognizer.getInsertParamsValue().get(0));
242+
}
238243

239-
String sql_2 = "INSERT INTO t(a) VALUES ()";
240-
SQLStatement ast_2 = getSQLStatement(sql_2);
241-
SqlServerInsertRecognizer recognizer_2 = new SqlServerInsertRecognizer(sql_2, ast_2);
242-
Assertions.assertEquals("", recognizer_2.getInsertParamsValue().get(0));
244+
static Stream<Arguments> provideSqlWithExplicitValues() {
245+
return Stream.of(
246+
Arguments.of("INSERT INTO t(a) VALUES (?)", "?"), Arguments.of("INSERT INTO t(a) VALUES ()", ""));
247+
}
243248

249+
@Test
250+
public void testGetInsertParamsValueWithDefaultValues() {
244251
String sql_3 = "INSERT INTO T1 DEFAULT VALUES";
245252
SQLStatement ast_3 = getSQLStatement(sql_3);
246253
SqlServerInsertRecognizer recognizer_3 = new SqlServerInsertRecognizer(sql_3, ast_3);

0 commit comments

Comments
 (0)