From 5fb86d743ec66e5e8e2f1d2f003c8f99e0c9b393 Mon Sep 17 00:00:00 2001 From: rchen9 Date: Thu, 25 Apr 2024 20:14:41 +0800 Subject: [PATCH 1/2] fix: for comparing only fields with the same name, only nesting one level down is ignored --- .../OnlyCompareSameColumnsFilter.java | 3 +- .../com/arextest/diff/sdk/CompareSDKTest.java | 38 ++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/arex-compare-core/src/main/java/com/arextest/diff/handler/log/filterrules/OnlyCompareSameColumnsFilter.java b/arex-compare-core/src/main/java/com/arextest/diff/handler/log/filterrules/OnlyCompareSameColumnsFilter.java index 08720e9..65c48cb 100644 --- a/arex-compare-core/src/main/java/com/arextest/diff/handler/log/filterrules/OnlyCompareSameColumnsFilter.java +++ b/arex-compare-core/src/main/java/com/arextest/diff/handler/log/filterrules/OnlyCompareSameColumnsFilter.java @@ -47,7 +47,8 @@ private boolean isIgnorePath(List fuzzyPath) { int fuzzyPathSize = fuzzyPath.size(); int ignorePathSize = ignoreNodePath.size(); - if (ignorePathSize < fuzzyPathSize) { + // such as parameters/parammap vs parameters + if (fuzzyPathSize - ignorePathSize == 1) { boolean flag = true; for (int i = 0; i < ignorePathSize; i++) { if (!Objects.equals(ignoreNodePath.get(i), fuzzyPath.get(i))) { diff --git a/arex-compare-core/src/test/java/com/arextest/diff/sdk/CompareSDKTest.java b/arex-compare-core/src/test/java/com/arextest/diff/sdk/CompareSDKTest.java index de0aa1e..4c7eab9 100644 --- a/arex-compare-core/src/test/java/com/arextest/diff/sdk/CompareSDKTest.java +++ b/arex-compare-core/src/test/java/com/arextest/diff/sdk/CompareSDKTest.java @@ -499,7 +499,7 @@ public void testExpressionNodeIgnore() { + " },\n" + " {\n" + " \"info\": {\n" - + " \"name\": \"apple\"\n" + + " \"name\": \"tiktok\"\n" + " },\n" + " \"age\": 20\n" + " }\n" @@ -773,5 +773,41 @@ public void testTransFormConfigTest() { Assertions.assertEquals(1, result.getLogs().size()); } + @Test + public void testParmeter() { + CompareSDK sdk = new CompareSDK(); + sdk.getGlobalOptions().putOnlyCompareCoincidentColumn(true); + + String str1 = "{\n" + + " \"parameters\": {\n" + + " \"parammap\": \"{\\\"link_type\\\":1,\\\"token\\\":\\\"1\\\"}\",\n" + + " \"tablename\": \"table\"\n" + + " },\n" + + " \"body\": \"insert into log (table_name, param_map) values (?, ?)\",\n" + + " \"dbname\": \"\"\n" + + " }\n" + + " ]\n" + + "}"; + + String str2 = "{\n" + + " \"parameters\": {\n" + + " \"parammap\": \"{\\\"link_type\\\":1}\",\n" + + " \"tablename\": \"table\"\n" + + " },\n" + + " \"body\": \"insert into log (table_name, param_map) values (?, ?)\",\n" + + " \"dbname\": \"\"\n" + + " }\n" + + " ]\n" + + "}"; + + CompareOptions compareOptions = CompareOptions.options(); + compareOptions.putExclusions(Arrays.asList("body")); + compareOptions.putCategoryType(CategoryType.DATABASE); + compareOptions.putOnlyCompareCoincidentColumn(true); + + CompareResult result = sdk.compare(str1, str2, compareOptions); + Assertions.assertEquals(1, result.getLogs().size()); + } + } \ No newline at end of file From 484c4a1755994938cd1a25c64f3871f44a5b20ca Mon Sep 17 00:00:00 2001 From: rchen9 Date: Thu, 25 Apr 2024 20:26:32 +0800 Subject: [PATCH 2/2] chore:update version to 0.2.13 --- arex-compare-core/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arex-compare-core/pom.xml b/arex-compare-core/pom.xml index a4a9b60..5ba1b2c 100644 --- a/arex-compare-core/pom.xml +++ b/arex-compare-core/pom.xml @@ -5,7 +5,7 @@ arex-compare-parent com.arextest - 0.2.12 + 0.2.13 4.0.0 diff --git a/pom.xml b/pom.xml index c51bb45..53875f1 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.arextest arex-compare-parent pom - 0.2.12 + 0.2.13 arex-compare-extension arex-compare-core