Skip to content

Commit 3730f7b

Browse files
committed
cleanup implementation
1 parent 5894045 commit 3730f7b

31 files changed

Lines changed: 245 additions & 111 deletions

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,3 @@ build/
4646

4747
### Local Development ###
4848
application-local.yml
49-
/src/main/java/it/aboutbits/springboot/testing/demo_project/

src/main/java/it/aboutbits/springboot/testing/validation/core/BaseRuleBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
import it.aboutbits.springboot.testing.validation.rule.NotBlankRule;
1010
import it.aboutbits.springboot.testing.validation.rule.NotEmptyRule;
1111
import it.aboutbits.springboot.testing.validation.rule.NotNullRule;
12+
import it.aboutbits.springboot.testing.validation.rule.NotValidatedRule;
1213
import it.aboutbits.springboot.testing.validation.rule.NullableRule;
1314
import it.aboutbits.springboot.testing.validation.rule.PastRule;
1415
import it.aboutbits.springboot.testing.validation.rule.PositiveOrZeroRule;
1516
import it.aboutbits.springboot.testing.validation.rule.PositiveRule;
16-
import it.aboutbits.springboot.testing.validation.rule.UncheckedRule;
1717
import it.aboutbits.springboot.testing.validation.rule.ValidBeanRule;
1818
import lombok.AccessLevel;
1919
import lombok.Getter;
@@ -40,7 +40,7 @@ public abstract class BaseRuleBuilder<R extends BaseRuleBuilder<?>> implements
4040
PastRule<R>,
4141
PositiveOrZeroRule<R>,
4242
PositiveRule<R>,
43-
UncheckedRule<R>,
43+
NotValidatedRule<R>,
4444
ValidBeanRule<R> {
4545
@Getter(AccessLevel.PACKAGE)
4646
private final List<Rule> rules = new ArrayList<>();

src/main/java/it/aboutbits/springboot/testing/validation/core/BaseValidationAssert.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@
1111
import java.util.function.BiConsumer;
1212
import java.util.function.Consumer;
1313

14-
import static org.assertj.core.api.Assertions.assertThat;
15-
16-
@RequiredArgsConstructor
17-
public abstract class BaseValidationAssert<R extends BaseRuleBuilder<?>> implements AutoCloseable {
14+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
15+
public abstract class BaseValidationAssert<R extends BaseRuleBuilder<?>> {
1816
@Getter(AccessLevel.PROTECTED)
1917
private final R ruleBuilder;
2018

@@ -23,41 +21,32 @@ public abstract class BaseValidationAssert<R extends BaseRuleBuilder<?>> impleme
2321
private Object parameterUnderTest;
2422

2523
@Setter(AccessLevel.PRIVATE)
26-
private Consumer<Object> functionToCallWithParameter = null;
27-
28-
protected boolean hasBeenCalled = false;
24+
private Consumer<?> functionToCallWithParameter = null;
2925

3026
public static void registerNonBeanType(Class<?> type) {
3127
NON_BEAN_TYPES.add(type);
3228
}
3329

34-
public <P> CallBuilder<R, P> that(@NonNull P parameterUnderTest) {
30+
public <P> CallBuilder<R, P> of(@NonNull P parameterUnderTest) {
3531
this.parameterUnderTest = parameterUnderTest;
3632
ruleBuilder.setTriggerValidation(this::assertValidation);
37-
return new CallBuilder<>(this, parameterUnderTest);
38-
}
39-
40-
@Override
41-
public void close() throws RuntimeException {
42-
assertThat(hasBeenCalled)
43-
.withFailMessage("Validation was never invoked by calling 'isCompliant()'.")
44-
.isTrue();
33+
return new CallBuilder<>(this);
4534
}
4635

4736
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
4837
public static final class CallBuilder<R extends BaseRuleBuilder<?>, P> {
4938
private final BaseValidationAssert<R> parent;
50-
private final P parameterUnderTest;
5139

5240
public R calling(@NonNull Consumer<P> functionToCallWithParameter) {
53-
parent.setFunctionToCallWithParameter((Consumer<Object>) functionToCallWithParameter);
41+
parent.setFunctionToCallWithParameter(functionToCallWithParameter);
5442
return parent.ruleBuilder;
5543
}
5644

5745
public R usingBeanValidation() {
5846
return parent.ruleBuilder;
5947
}
6048

49+
@SuppressWarnings("unchecked")
6150
public <ID> R calling(
6251
@NonNull BiConsumer<ID, P> functionToCallWithParameter,
6352
@NonNull ID id
@@ -70,7 +59,6 @@ public <ID> R calling(
7059
}
7160

7261
private void assertValidation() {
73-
hasBeenCalled = true;
7462
new RuleValidator<>().assertValidation(
7563
new RuleValidator.AssertionParameter<>(
7664
parameterUnderTest,

src/main/java/it/aboutbits/springboot/testing/validation/core/RuleValidator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ record AssertionParameter<P>(
2828
@NonNull
2929
P parameterUnderTest,
3030
@Nullable
31-
Consumer<P> functionToCallWithParameter,
31+
Consumer<?> functionToCallWithParameter,
3232
@NonNull
3333
List<Rule> rules,
3434
@NonNull
@@ -38,7 +38,8 @@ record AssertionParameter<P>(
3838

3939
void assertValidation(AssertionParameter<P> assertionParameter) {
4040
var parameterUnderTest = assertionParameter.parameterUnderTest();
41-
var functionToCallWithParameter = assertionParameter.functionToCallWithParameter();
41+
@SuppressWarnings("unchecked")
42+
var functionToCallWithParameter = (Consumer<P>) assertionParameter.functionToCallWithParameter();
4243
var rules = assertionParameter.rules();
4344
var nonBeanTypes = assertionParameter.nonBeanTypes();
4445

src/main/java/it/aboutbits/springboot/testing/validation/core/ValueSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
import java.util.stream.Stream;
44

55
public interface ValueSource {
6-
Stream<?> values(Class<?> propertyClass, Object... args);
6+
<T> Stream<T> values(Class<T> propertyClass, Object... args);
77
}

src/main/java/it/aboutbits/springboot/testing/validation/rule/BetweenRule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import it.aboutbits.springboot.testing.validation.source.LessThanValueSource;
88
import lombok.NonNull;
99

10+
@SuppressWarnings("unchecked")
1011
public interface BetweenRule<V extends BaseRuleBuilder<?>> extends ValidationRulesData {
1112
default V between(@NonNull String property, long min, long max) {
1213
addRule(

src/main/java/it/aboutbits/springboot/testing/validation/rule/FutureRule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import it.aboutbits.springboot.testing.validation.source.PastValueSource;
77
import lombok.NonNull;
88

9+
@SuppressWarnings("unchecked")
910
public interface FutureRule<V extends BaseRuleBuilder<?>> extends ValidationRulesData {
1011
default V future(@NonNull String property) {
1112
addRule(

src/main/java/it/aboutbits/springboot/testing/validation/rule/MaxRule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import it.aboutbits.springboot.testing.validation.source.BiggerThanValueSource;
77
import lombok.NonNull;
88

9+
@SuppressWarnings("unchecked")
910
public interface MaxRule<V extends BaseRuleBuilder<?>> extends ValidationRulesData {
1011
default V max(@NonNull String property, long max) {
1112
addRule(

src/main/java/it/aboutbits/springboot/testing/validation/rule/MinRule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import it.aboutbits.springboot.testing.validation.source.LessThanValueSource;
77
import lombok.NonNull;
88

9+
@SuppressWarnings("unchecked")
910
public interface MinRule<V extends BaseRuleBuilder<?>> extends ValidationRulesData {
1011
default V min(@NonNull String property, long min) {
1112
addRule(

src/main/java/it/aboutbits/springboot/testing/validation/rule/NegativeOrZeroRule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import it.aboutbits.springboot.testing.validation.source.BiggerThanValueSource;
77
import lombok.NonNull;
88

9+
@SuppressWarnings("unchecked")
910
public interface NegativeOrZeroRule<V extends BaseRuleBuilder<?>> extends ValidationRulesData {
1011
default V negativeOrZero(@NonNull String property) {
1112
addRule(

0 commit comments

Comments
 (0)