Skip to content

Commit 92d6797

Browse files
committed
Bug fix:
`FilterDuplicatesConfig.andFailNullKeysWith` is being overridden by `failureForNullValidatable` Signed-off-by: Gopal S Akshintala <[email protected]>
1 parent b90d0b8 commit 92d6797

File tree

4 files changed

+15
-30
lines changed

4 files changed

+15
-30
lines changed

vador/src/main/java/com/salesforce/vador/config/FilterDuplicatesConfig.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,6 @@
55
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
66
******************************************************************************/
77

8-
/*******************************************************************************
9-
* Copyright (c) 2022, salesforce.com, inc.
10-
* All rights reserved.
11-
* SPDX-License-Identifier: BSD-3-Clause
12-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
13-
******************************************************************************/
14-
158
package com.salesforce.vador.config;
169

1710
import io.vavr.Function1;

vador/src/main/java/com/salesforce/vador/config/IDConfig.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,6 @@
55
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
66
******************************************************************************/
77

8-
/*******************************************************************************
9-
* Copyright (c) 2022, salesforce.com, inc.
10-
* All rights reserved.
11-
* SPDX-License-Identifier: BSD-3-Clause
12-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
13-
******************************************************************************/
14-
158
package com.salesforce.vador.config;
169

1710
import de.cronn.reflection.util.TypedPropertyGetter;

vador/src/main/java/com/salesforce/vador/execution/strategies/util/Utils.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,13 @@ internal fun <FailureT, ValidatableT> findAndFilterInvalids(
129129
failureForNullValidatable: FailureT?,
130130
filterConfigBuilders: Collection<FilterDuplicatesConfigBuilder<ValidatableT, FailureT?>>,
131131
): Collection<Either<FailureT?, ValidatableT?>> {
132-
val mapNullValidatables: Collection<Pair<ValidatableT?, Either<FailureT?, ValidatableT?>>> =
133-
validatables.map {
134-
if (it == null) Pair(null, left(failureForNullValidatable)) else Pair(it, right(it))
135-
}
136132
return if (filterConfigBuilders.isEmpty()) {
137-
mapNullValidatables.map { it.second }
133+
validatables.map { if (it == null) left(failureForNullValidatable) else right(it) }
138134
} else {
135+
val mapValidatables: Collection<Pair<ValidatableT?, Either<FailureT?, ValidatableT?>>> =
136+
validatables.map { Pair(it, right(it)) }
139137
findAndFilterInvalids(
140-
mapNullValidatables.withIndex().map {
138+
mapValidatables.withIndex().map {
141139
Triple(Index(it.index), it.value.first, it.value.second)
142140
},
143141
filterConfigBuilders.iterator(),

vador/src/test/java/com/salesforce/vador/execution/UtilsTest.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,28 +153,29 @@ void failNullValidatablesAndFilterDuplicates() {
153153
.findAndFilterDuplicatesConfig(
154154
FilterDuplicatesConfig.<Bean, ValidationFailure>toValidate()
155155
.findAndFilterDuplicatesWith(
156-
container -> container.getId() == null ? null : container.getId()))
156+
container -> container.getId() == null ? null : container.getId())
157+
.andFailNullKeysWith(NOTHING_TO_VALIDATE))
157158
.prepare();
158159
final var results =
159-
List.ofAll(
160-
findAndFilterInvalids(
161-
validatables.toJavaList(),
162-
NOTHING_TO_VALIDATE,
163-
batchValidationConfig.getFindAndFilterDuplicatesConfigs()));
160+
VadorBatch.validateAndFailFastForEach(
161+
validatables.toJavaList(),
162+
bean -> bean == null ? "nullBean" : bean.getId(),
163+
batchValidationConfig);
164164

165165
Assertions.assertThat(results).hasSize(5);
166-
final var failedInvalids = results.take(2);
167-
Assertions.assertThat(failedInvalids).allMatch(r -> r.getLeft() == NOTHING_TO_VALIDATE);
166+
var vavrResults = List.ofAll(results);
167+
final var failedInvalids = vavrResults.take(2);
168+
Assertions.assertThat(failedInvalids).allMatch(r -> r.getLeft()._2 == NOTHING_TO_VALIDATE);
168169

169-
final var valids = results.drop(2);
170+
final var valids = vavrResults.drop(2);
170171
org.junit.jupiter.api.Assertions.assertTrue(valids.forAll(Either::isRight));
171172
valids.forEachWithIndex(
172173
(r, i) ->
173174
org.junit.jupiter.api.Assertions.assertEquals(String.valueOf(i + 1), r.get().getId()));
174175
}
175176

176177
@DisplayName(
177-
"FailForDuplicates NOT configured. FAIL: Null Validatables, FAIL: Null Keys, FILTER_ONLY: Duplicates")
178+
"FailForDuplicates NOT configured. FAIL: NullValidatables, FAIL: Null Keys, FILTER_ONLY: Duplicates")
178179
@Test
179180
void failNullValidatablesAndNullKeysAndFilterDuplicates() {
180181
final List<Bean> invalidValidatables = List.of(null, null);

0 commit comments

Comments
 (0)