Skip to content

Commit a39e717

Browse files
authored
Merge branch 'develop' into features/flamingock-test-support-default-exception-validator
2 parents 1af263c + 6725349 commit a39e717

File tree

1 file changed

+24
-32
lines changed

1 file changed

+24
-32
lines changed

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

Lines changed: 24 additions & 32 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
}
@@ -68,48 +70,38 @@ public AuditSequenceStrictValidator(AuditReader auditReader, AuditEntryDefinitio
6870
public ValidationResult validate() {
6971
List<ValidationError> allErrors = new ArrayList<>();
7072

71-
int expectedSize = expectations.size();
72-
int actualSize = actualEntries.size();
73-
74-
if (expectedSize != actualSize) {
73+
if (expectations.size() != actualEntries.size()) {
7574
allErrors.add(new CountMismatchError(getExpectedChangeIds(), getActualChangeIds()));
7675
}
7776

7877
allErrors.addAll(getValidationErrors(expectations, actualEntries));
7978

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-
94-
if (allErrors.isEmpty()) {
95-
return ValidationResult.success(VALIDATOR_NAME);
96-
}
97-
98-
return ValidationResult.failure(VALIDATOR_NAME, allErrors.toArray(new ValidationError[0]));
79+
return allErrors.isEmpty()
80+
? ValidationResult.success(VALIDATOR_NAME)
81+
: ValidationResult.failure(VALIDATOR_NAME, allErrors.toArray(new ValidationError[0]));
9982
}
10083

10184
private static List<ValidationError> getValidationErrors(List<AuditEntryExpectation> expectedEntries, List<AuditEntry> actualEntries) {
10285
List<ValidationError> allErrors = new ArrayList<>();
103-
if (expectedEntries == null || expectedEntries.isEmpty()) {
86+
if (expectedEntries.isEmpty()) {
10487
return allErrors;
10588
}
106-
int actualSize = actualEntries != null ? actualEntries.size() : 0;
107-
int limit = Math.min(expectedEntries.size(), actualSize);
89+
int actualSize = actualEntries.size();
90+
int limit = Math.max(expectedEntries.size(), actualSize);
91+
10892
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);
93+
AuditEntryExpectation expected = i < expectedEntries.size() ? expectedEntries.get(i) : null;
94+
AuditEntry actual = i < actualEntries.size() ? actualEntries.get(i) : null;
95+
if( expected != null && actual != null) {
96+
allErrors.addAll(expected.compareWith(actual));
97+
} else if( expected != null) {
98+
AuditEntryDefinition def = expected.getDefinition();
99+
allErrors.add(new MissingEntryError(i, def.getChangeId(), def.getState()));
100+
} else {
101+
assert actual != null;
102+
allErrors.add(new UnexpectedEntryError(i, actual.getTaskId(), actual.getState()));
103+
}
104+
113105
}
114106
return allErrors;
115107
}

0 commit comments

Comments
 (0)