From eda434cb9456cab993b3795239813e7373767f0f Mon Sep 17 00:00:00 2001 From: fl0rian-p <2789427+fl0rian-p@users.noreply.github.com> Date: Sat, 14 Feb 2026 11:52:30 +0100 Subject: [PATCH] Use Values#areEqual when looking for modified columns --- .../java/org/assertj/db/util/Changes.java | 5 +--- ...nges_GetIndexesOfModifiedColumns_Test.java | 26 +++++++++++++++---- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/assertj/db/util/Changes.java b/src/main/java/org/assertj/db/util/Changes.java index a9a01f33..7a0c55c3 100644 --- a/src/main/java/org/assertj/db/util/Changes.java +++ b/src/main/java/org/assertj/db/util/Changes.java @@ -51,12 +51,9 @@ public static Integer[] getIndexesOfModifiedColumns(Change change) { int index = 0; for (Value valueAtStartPoint : valuesListAtStartPoint) { Value valueAtEndPoint = iteratorAtEndPoint.next(); - Object objectAtStartPoint = valueAtStartPoint.getValue(); Object objectAtEndPoint = valueAtEndPoint.getValue(); - if ((objectAtStartPoint == null && objectAtEndPoint != null) || - (objectAtStartPoint != null && !objectAtStartPoint.equals(objectAtEndPoint))) { - + if (!Values.areEqual(valueAtStartPoint, objectAtEndPoint)) { indexesList.add(index); } index++; diff --git a/src/test/java/org/assertj/db/util/Changes_GetIndexesOfModifiedColumns_Test.java b/src/test/java/org/assertj/db/util/Changes_GetIndexesOfModifiedColumns_Test.java index 36e947de..be3e9a86 100644 --- a/src/test/java/org/assertj/db/util/Changes_GetIndexesOfModifiedColumns_Test.java +++ b/src/test/java/org/assertj/db/util/Changes_GetIndexesOfModifiedColumns_Test.java @@ -43,17 +43,31 @@ public void test_get_indexes_of_modified_columns() throws Exception { Change modificationChange = getChange(DataType.TABLE, "test", ChangeType.MODIFICATION, getRow(Arrays.asList("var1"), - Arrays.asList("var1", "var2", "var3", "var4"), + Arrays.asList("var1", "var2", "var3", "var4", "var11"), Arrays.asList(getValue("var1", 1), getValue("var2", null), getValue("var3", "text1"), - getValue("var4", null))), + getValue("var4", null), + getValue("var11", "bytes".getBytes()))), getRow(Arrays.asList("var1"), - Arrays.asList("var1", "var2", "var3", "var4"), + Arrays.asList("var1", "var2", "var3", "var4", "var11"), Arrays.asList(getValue("var1", 1), getValue("var2", "test"), getValue("var3", null), - getValue("var4", null)))); + getValue("var4", null), + getValue("var11", "bytes".getBytes())))); + + Change modificationWithActualBytesChange = getChange(DataType.TABLE, "test", ChangeType.MODIFICATION, + getRow(Arrays.asList("var1"), + Arrays.asList("var1", "var2", "var11"), + Arrays.asList(getValue("var1", 1), + getValue("var2", "value"), + getValue("var11", "before".getBytes()))), + getRow(Arrays.asList("var1"), + Arrays.asList("var1", "var2", "var11"), + Arrays.asList(getValue("var1", 1), + getValue("var2", "value"), + getValue("var11", "after".getBytes())))); Change deletionChange = getChange(DataType.TABLE, "test", ChangeType.DELETION, getRow(Arrays.asList("var1"), @@ -65,10 +79,12 @@ public void test_get_indexes_of_modified_columns() throws Exception { Integer[] creationIndexes = Changes.getIndexesOfModifiedColumns(creationChange); Integer[] modificationIndexes = Changes.getIndexesOfModifiedColumns(modificationChange); + Integer[] modificationWithActualBytesIndexes = Changes.getIndexesOfModifiedColumns(modificationWithActualBytesChange); Integer[] deletionIndexes = Changes.getIndexesOfModifiedColumns(deletionChange); Assertions.assertThat(creationIndexes).contains(0, 1); - Assertions.assertThat(modificationIndexes).contains(1, 2); + Assertions.assertThat(modificationIndexes).containsOnly(1, 2); + Assertions.assertThat(modificationWithActualBytesIndexes).containsOnly(2); Assertions.assertThat(deletionIndexes).contains(0, 1); } }