Skip to content

Commit ba3c343

Browse files
committed
wip
1 parent 34f17bd commit ba3c343

3 files changed

Lines changed: 68 additions & 11 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.github.jinahya.assertj.validation;
2+
3+
import javax.validation.ConstraintViolation;
4+
import java.util.function.Consumer;
5+
6+
import static org.mockito.Mockito.spy;
7+
8+
public final class ValidationAssertionsTestUtils {
9+
10+
public static Consumer<ConstraintViolation<?>> violationConsumerSpy(
11+
final Consumer<? super ConstraintViolation<?>> consumer) {
12+
final Consumer<ConstraintViolation<?>> wrapper = new Consumer<ConstraintViolation<?>>() {
13+
@Override
14+
public void accept(final ConstraintViolation<?> constraintViolation) {
15+
consumer.accept(constraintViolation);
16+
}
17+
};
18+
return spy(wrapper);
19+
}
20+
21+
public static Consumer<ConstraintViolation<?>> violationConsumerSpy() {
22+
return violationConsumerSpy(cv -> {
23+
});
24+
}
25+
26+
private ValidationAssertionsTestUtils() {
27+
throw new AssertionError("instantiation is not allowed");
28+
}
29+
}

src/test/java/com/github/jinahya/assertj/validation/example/user/User_IsValid_Test.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* #L%
2121
*/
2222

23+
import com.github.jinahya.assertj.validation.ValidationAssertionsTestUtils;
2324
import lombok.extern.slf4j.Slf4j;
2425
import org.junit.jupiter.api.Test;
2526
import org.mockito.ArgumentCaptor;
@@ -131,11 +132,8 @@ void __Invalid() {
131132
void WithConsumer__Invalid() {
132133
final var bean = User.newInstance(false, false);
133134
final var assertion = assertThatBean(bean);
134-
final Consumer<ConstraintViolation<?>> consumer = spy(new Consumer<ConstraintViolation<?>>() {
135-
@Override
136-
public void accept(final ConstraintViolation<?> constraintViolation) {
137-
log.debug("violation: {}", constraintViolation);
138-
}
135+
final var consumer = ValidationAssertionsTestUtils.violationConsumerSpy(cv -> {
136+
log.debug("violation: {}", cv);
139137
});
140138
// WHEN
141139
assertThatThrownBy(() -> assertion.consumingViolations(consumer).isValid()).isInstanceOf(AssertionError.class);

src/test/java/com/github/jinahya/assertj/validation/example/user2/User_IsValidFor_Test.java

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,28 @@ class AgeTest {
4141
void __AgeIsValidForJunior() {
4242
final var age = UserConstants.MAX_AGE_FOR_JUNIOR_EXCLUSIVE - 1;
4343
final var assertion = assertThatProperty(age);
44-
assertion.isValidFor(User2.class, User.PROPERTY_NAME_AGE);
45-
assertion.targetingGroups(Junior.class).isValidFor(User2.class, User.PROPERTY_NAME_AGE);
44+
assertion.consumingViolations(cv -> {
45+
log.debug("cv: {}", cv);
46+
})
47+
.isValidFor(User2.class, User.PROPERTY_NAME_AGE);
48+
assertion.consumingViolations(cv -> {
49+
log.debug("cv: {}", cv);
50+
})
51+
.targetingGroups(Junior.class).isValidFor(User2.class, User.PROPERTY_NAME_AGE);
4652
assertThatThrownBy(
4753
() -> assertion
54+
.consumingViolations(cv -> {
55+
log.debug("cv: {}", cv);
56+
})
4857
.targetingGroups(Senior.class)
4958
.isValidFor(User2.class, User.PROPERTY_NAME_AGE)
5059
)
5160
.isInstanceOf(AssertionError.class);
5261
assertThatThrownBy(
5362
() -> assertion
63+
.consumingViolations(cv -> {
64+
log.debug("cv: {}", cv);
65+
})
5466
.targetingGroups(Junior.class, Senior.class)
5567
.isValidFor(User2.class, User.PROPERTY_NAME_AGE)
5668
)
@@ -61,20 +73,38 @@ void __AgeIsValidForJunior() {
6173
void __AgeIsValidForSenior() {
6274
final var age = UserConstants.MIN_AGE_FOR_SENIOR_INCLUSIVE;
6375
final var assertion = assertThatProperty(age);
64-
assertion.isValidFor(User2.class, User.PROPERTY_NAME_AGE);
65-
assertion.targetingGroups(Senior.class).isValidFor(User2.class, User.PROPERTY_NAME_AGE);
76+
assertion
77+
.consumingViolations(cv -> {
78+
log.debug("cv: {}", cv);
79+
})
80+
.isValidFor(User2.class, User.PROPERTY_NAME_AGE)
81+
;
82+
assertion.targetingGroups(Senior.class)
83+
.consumingViolations(cv -> {
84+
log.debug("cv: {}", cv);
85+
})
86+
.isValidFor(User2.class, User.PROPERTY_NAME_AGE)
87+
;
6688
assertThatThrownBy(
6789
() -> assertion
90+
.consumingViolations(cv -> {
91+
log.debug("cv: {}", cv);
92+
})
6893
.targetingGroups(Junior.class)
6994
.isValidFor(User2.class, User.PROPERTY_NAME_AGE)
7095
)
71-
.isInstanceOf(AssertionError.class);
96+
.isInstanceOf(AssertionError.class)
97+
;
7298
assertThatThrownBy(
7399
() -> assertion
100+
.consumingViolations(cv -> {
101+
log.debug("cv: {}", cv);
102+
})
74103
.targetingGroups(Junior.class, Senior.class)
75104
.isValidFor(User2.class, User.PROPERTY_NAME_AGE)
76105
)
77-
.isInstanceOf(AssertionError.class);
106+
.isInstanceOf(AssertionError.class)
107+
;
78108
}
79109
}
80110
}

0 commit comments

Comments
 (0)