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/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 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