Skip to content

Commit eec58e1

Browse files
committed
add validator tests
1 parent 3101f70 commit eec58e1

1 file changed

Lines changed: 200 additions & 0 deletions

File tree

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.Validation;
5+
import jakarta.validation.ValidatorFactory;
6+
import jakarta.validation.constraints.Max;
7+
import jakarta.validation.constraints.Min;
8+
import jakarta.validation.constraints.Negative;
9+
import jakarta.validation.constraints.NegativeOrZero;
10+
import jakarta.validation.constraints.Positive;
11+
import jakarta.validation.constraints.PositiveOrZero;
12+
import org.junit.jupiter.api.Nested;
13+
import org.junit.jupiter.params.ParameterizedTest;
14+
import org.junit.jupiter.params.provider.ValueSource;
15+
16+
import static org.assertj.core.api.Assertions.assertThat;
17+
18+
public class ScaledBigDecimalValidatorTest {
19+
private static final ValidatorFactory VALIDATOR_FACTORY = Validation.buildDefaultValidatorFactory();
20+
21+
@Nested
22+
class PositiveConstraint {
23+
record Sut(@Positive ScaledBigDecimal value) {
24+
}
25+
26+
@ParameterizedTest
27+
@ValueSource(doubles = {0.0000001, 1, 100_000_000.9999})
28+
void valid_shouldSucceed(double doubleValue) {
29+
var validator = VALIDATOR_FACTORY.getValidator();
30+
31+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
32+
33+
var violations = validator.validate(instance);
34+
35+
assertThat(violations).isEmpty();
36+
}
37+
38+
@ParameterizedTest
39+
@ValueSource(doubles = {-1, -0.0000001, 0})
40+
void inValid_shouldFail(double doubleValue) {
41+
var validator = VALIDATOR_FACTORY.getValidator();
42+
43+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
44+
45+
var violations = validator.validate(instance);
46+
47+
assertThat(violations).isNotEmpty();
48+
}
49+
}
50+
51+
@Nested
52+
class PositiveOrZeroConstraint {
53+
record Sut(@PositiveOrZero ScaledBigDecimal value) {
54+
}
55+
56+
@ParameterizedTest
57+
@ValueSource(doubles = {0, 0.0000001, 1, 100_000_000.9999})
58+
void valid_shouldSucceed(double doubleValue) {
59+
var validator = VALIDATOR_FACTORY.getValidator();
60+
61+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
62+
63+
var violations = validator.validate(instance);
64+
65+
assertThat(violations).isEmpty();
66+
}
67+
68+
@ParameterizedTest
69+
@ValueSource(doubles = {-1, -0.0000001})
70+
void inValid_shouldFail(double doubleValue) {
71+
var validator = VALIDATOR_FACTORY.getValidator();
72+
73+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
74+
75+
var violations = validator.validate(instance);
76+
77+
assertThat(violations).isNotEmpty();
78+
}
79+
}
80+
81+
@Nested
82+
class NegativeConstraint {
83+
record Sut(@Negative ScaledBigDecimal value) {
84+
}
85+
86+
@ParameterizedTest
87+
@ValueSource(doubles = {-1, -0.0000001})
88+
void valid_shouldSucceed(double doubleValue) {
89+
var validator = VALIDATOR_FACTORY.getValidator();
90+
91+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
92+
93+
var violations = validator.validate(instance);
94+
95+
assertThat(violations).isEmpty();
96+
}
97+
98+
@ParameterizedTest
99+
@ValueSource(doubles = {0, 0.0000001, 1, 100_000_000.9999})
100+
void inValid_shouldFail(double doubleValue) {
101+
var validator = VALIDATOR_FACTORY.getValidator();
102+
103+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
104+
105+
var violations = validator.validate(instance);
106+
107+
assertThat(violations).isNotEmpty();
108+
}
109+
}
110+
111+
@Nested
112+
class NegativeOrZeroConstraint {
113+
record Sut(@NegativeOrZero ScaledBigDecimal value) {
114+
}
115+
116+
@ParameterizedTest
117+
@ValueSource(doubles = {-1, -0.0000001, 0})
118+
void valid_shouldSucceed(double doubleValue) {
119+
var validator = VALIDATOR_FACTORY.getValidator();
120+
121+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
122+
123+
var violations = validator.validate(instance);
124+
125+
assertThat(violations).isEmpty();
126+
}
127+
128+
@ParameterizedTest
129+
@ValueSource(doubles = {0.0000001, 1, 100_000_000.9999})
130+
void inValid_shouldFail(double doubleValue) {
131+
var validator = VALIDATOR_FACTORY.getValidator();
132+
133+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
134+
135+
var violations = validator.validate(instance);
136+
137+
assertThat(violations).isNotEmpty();
138+
}
139+
}
140+
141+
@Nested
142+
class MinConstraint {
143+
record Sut(@Min(50) ScaledBigDecimal value) {
144+
}
145+
146+
@ParameterizedTest
147+
@ValueSource(doubles = {50, 50.0000001, 100_000_000.9999})
148+
void valid_shouldSucceed(double doubleValue) {
149+
var validator = VALIDATOR_FACTORY.getValidator();
150+
151+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
152+
153+
var violations = validator.validate(instance);
154+
155+
assertThat(violations).isEmpty();
156+
}
157+
158+
@ParameterizedTest
159+
@ValueSource(doubles = {-1, -0.0000001, 0, 49, 49.999999})
160+
void inValid_shouldFail(double doubleValue) {
161+
var validator = VALIDATOR_FACTORY.getValidator();
162+
163+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
164+
165+
var violations = validator.validate(instance);
166+
167+
assertThat(violations).isNotEmpty();
168+
}
169+
}
170+
171+
@Nested
172+
class MaxConstraint {
173+
record Sut(@Max(-50) ScaledBigDecimal value) {
174+
}
175+
176+
@ParameterizedTest
177+
@ValueSource(doubles = {-100_000_000.99999, -50.000001, -50})
178+
void valid_shouldSucceed(double doubleValue) {
179+
var validator = VALIDATOR_FACTORY.getValidator();
180+
181+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
182+
183+
var violations = validator.validate(instance);
184+
185+
assertThat(violations).isEmpty();
186+
}
187+
188+
@ParameterizedTest
189+
@ValueSource(doubles = {-49.999999, -49, 0, 100_000_000})
190+
void inValid_shouldFail(double doubleValue) {
191+
var validator = VALIDATOR_FACTORY.getValidator();
192+
193+
var instance = new Sut(ScaledBigDecimal.valueOf(doubleValue));
194+
195+
var violations = validator.validate(instance);
196+
197+
assertThat(violations).isNotEmpty();
198+
}
199+
}
200+
}

0 commit comments

Comments
 (0)