Skip to content

Commit 10710cc

Browse files
committed
feat: flamingock test support AuditSequenceStrictValidator changes after code review
1 parent b9f000c commit 10710cc

File tree

1 file changed

+20
-23
lines changed

1 file changed

+20
-23
lines changed

core/flamingock-test-support/src/main/java/io/flamingock/support/validation/impl/AuditSequenceStrictValidator.java

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ public AuditSequenceStrictValidator(AuditReader auditReader, AuditEntryDefinitio
5757
* Internal constructor for direct list initialization (used by tests).
5858
*/
5959
AuditSequenceStrictValidator(List<AuditEntryDefinition> expectedDefinitions, List<AuditEntry> actualEntries, AuditReader auditReader) {
60-
this.expectations = expectedDefinitions.stream()
60+
this.expectations = expectedDefinitions != null
61+
? expectedDefinitions.stream()
6162
.map(AuditEntryExpectation::new)
62-
.collect(Collectors.toList());
63+
.collect(Collectors.toList())
64+
: new ArrayList<>();
6365
this.auditReader = auditReader;
6466
this.actualEntries = actualEntries != null ? actualEntries : new ArrayList<>();
6567
}
@@ -77,20 +79,6 @@ public ValidationResult validate() {
7779

7880
allErrors.addAll(getValidationErrors(expectations, actualEntries));
7981

80-
if (expectedSize > actualSize) {
81-
for (int i = actualSize; i < expectedSize; i++) {
82-
AuditEntryDefinition def = expectations.get(i).getDefinition();
83-
allErrors.add(new MissingEntryError(i, def.getChangeId(), def.getState()));
84-
}
85-
}
86-
87-
if (expectedSize < actualSize) {
88-
for (int i = expectedSize; i < actualSize; i++) {
89-
AuditEntry actual = actualEntries.get(i);
90-
allErrors.add(new UnexpectedEntryError(i, actual.getTaskId(), actual.getState()));
91-
}
92-
}
93-
9482
if (allErrors.isEmpty()) {
9583
return ValidationResult.success(VALIDATOR_NAME);
9684
}
@@ -100,16 +88,25 @@ public ValidationResult validate() {
10088

10189
private static List<ValidationError> getValidationErrors(List<AuditEntryExpectation> expectedEntries, List<AuditEntry> actualEntries) {
10290
List<ValidationError> allErrors = new ArrayList<>();
103-
if (expectedEntries == null || expectedEntries.isEmpty()) {
91+
if (expectedEntries.isEmpty()) {
10492
return allErrors;
10593
}
106-
int actualSize = actualEntries != null ? actualEntries.size() : 0;
107-
int limit = Math.min(expectedEntries.size(), actualSize);
94+
int actualSize = actualEntries.size();
95+
int limit = Math.max(expectedEntries.size(), actualSize);
96+
10897
for (int i = 0; i < limit; i++) {
109-
AuditEntryExpectation expected = expectedEntries.get(i);
110-
AuditEntry actual = actualEntries.get(i);
111-
List<FieldMismatchError> entryErrors = expected.compareWith(actual);
112-
allErrors.addAll(entryErrors);
98+
AuditEntryExpectation expected = i < expectedEntries.size() ? expectedEntries.get(i) : null;
99+
AuditEntry actual = i < actualEntries.size() ? actualEntries.get(i) : null;
100+
if( expected != null && actual != null) {
101+
allErrors.addAll(expected.compareWith(actual));
102+
} else if( expected != null) {
103+
AuditEntryDefinition def = expected.getDefinition();
104+
allErrors.add(new MissingEntryError(i, def.getChangeId(), def.getState()));
105+
} else {
106+
assert actual != null;
107+
allErrors.add(new UnexpectedEntryError(i, actual.getTaskId(), actual.getState()));
108+
}
109+
113110
}
114111
return allErrors;
115112
}

0 commit comments

Comments
 (0)