Skip to content

Commit a4b0afb

Browse files
chore: validators unit test
1 parent 08582bc commit a4b0afb

File tree

9 files changed

+2752
-4
lines changed

9 files changed

+2752
-4
lines changed

validators/common/src/dev/programadorthi/state/validator/number/IsNotOneValidator.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public class IsNotOneValidator(
66
override val message: (Number) -> String
77
) : Validator<Number> {
88

9-
override fun isValid(value: Number): Boolean = value != 1
9+
override fun isValid(value: Number): Boolean = value.toDouble() != 1.0
1010

1111
}

validators/common/src/dev/programadorthi/state/validator/number/IsNotZeroValidator.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public class IsNotZeroValidator(
66
override val message: (Number) -> String
77
) : Validator<Number> {
88

9-
override fun isValid(value: Number): Boolean = value != 0
9+
override fun isValid(value: Number): Boolean = value.toDouble() != 0.0
1010

1111
}

validators/common/src/dev/programadorthi/state/validator/number/IsOneValidator.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public class IsOneValidator(
66
override val message: (Number) -> String
77
) : Validator<Number> {
88

9-
override fun isValid(value: Number): Boolean = value == 1
9+
override fun isValid(value: Number): Boolean = value.toDouble() == 1.0
1010

1111
}

validators/common/src/dev/programadorthi/state/validator/number/IsZeroValidator.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ public class IsZeroValidator(
66
override val message: (Number) -> String
77
) : Validator<Number> {
88

9-
override fun isValid(value: Number): Boolean = value == 0
9+
override fun isValid(value: Number): Boolean = value.toDouble() == 0.0
1010

1111
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
package dev.programadorthi.state.validator
2+
3+
import dev.programadorthi.state.core.extension.basicValueManager
4+
import dev.programadorthi.state.core.extension.plusAssign
5+
import dev.programadorthi.state.validator.any.InValidator
6+
import dev.programadorthi.state.validator.any.IsEqualToValidator
7+
import dev.programadorthi.state.validator.any.IsNotEqualToValidator
8+
import dev.programadorthi.state.validator.any.IsNotNullValidator
9+
import dev.programadorthi.state.validator.any.IsNullValidator
10+
import dev.programadorthi.state.validator.any.NotInValidator
11+
import kotlin.test.Test
12+
import kotlin.test.assertEquals
13+
import kotlin.test.assertFalse
14+
import kotlin.test.assertTrue
15+
16+
class AnyValidatorsTest {
17+
18+
@Test
19+
fun shouldBeValidWithInValidator() {
20+
// GIVEN
21+
val manager = basicValueManager(0)
22+
manager += InValidator(
23+
values = listOf(1, 2, 3, 4, 5),
24+
message = { "$it is invalid" }
25+
)
26+
27+
// WHEN
28+
manager.update { it + 3 }
29+
30+
// THEN
31+
assertEquals(3, manager.value)
32+
assertTrue(manager.isValid, "should be valid using in validator")
33+
assertTrue(manager.messages.isEmpty(), "should messages be empty having valid in validator")
34+
}
35+
36+
@Test
37+
fun shouldBeInvalidWithInValidator() {
38+
// GIVEN
39+
val manager = basicValueManager(0)
40+
manager += InValidator(
41+
values = listOf(1, 2, 3, 4, 5),
42+
message = { "$it is invalid" }
43+
)
44+
45+
// WHEN
46+
manager.update { it + 6 }
47+
48+
// THEN
49+
assertEquals(0, manager.value)
50+
assertFalse(manager.isValid, "should be invalid using in validator")
51+
assertEquals("6 is invalid", manager.messages.first())
52+
}
53+
54+
@Test
55+
fun shouldBeValidWithIsEqualToValidator() {
56+
// GIVEN
57+
val manager = basicValueManager(0)
58+
manager += IsEqualToValidator(
59+
other = 4,
60+
message = { "$it is invalid" }
61+
)
62+
63+
// WHEN
64+
manager.update { it + 4 }
65+
66+
// THEN
67+
assertEquals(4, manager.value)
68+
assertTrue(manager.isValid, "should be valid using is equal to validator")
69+
assertTrue(manager.messages.isEmpty(), "should messages be empty having valid is equal to validator")
70+
}
71+
72+
@Test
73+
fun shouldBeInvalidWithIsEqualToValidator() {
74+
// GIVEN
75+
val manager = basicValueManager(0)
76+
manager += IsEqualToValidator(
77+
other = 7,
78+
message = { "$it is invalid" }
79+
)
80+
81+
// WHEN
82+
manager.update { it + 2 }
83+
84+
// THEN
85+
assertEquals(0, manager.value)
86+
assertFalse(manager.isValid, "should be invalid using is equal to validator")
87+
assertEquals("2 is invalid", manager.messages.first())
88+
}
89+
90+
@Test
91+
fun shouldBeValidWithIsNotEqualToValidator() {
92+
// GIVEN
93+
val manager = basicValueManager(0)
94+
manager += IsNotEqualToValidator(
95+
other = 1,
96+
message = { "$it is invalid" }
97+
)
98+
99+
// WHEN
100+
manager.update { it + 3 }
101+
102+
// THEN
103+
assertEquals(3, manager.value)
104+
assertTrue(manager.isValid, "should be valid using is not equal to validator")
105+
assertTrue(manager.messages.isEmpty(), "should messages be empty having valid is not equal to validator")
106+
}
107+
108+
@Test
109+
fun shouldBeInvalidWithIsNotEqualToValidator() {
110+
// GIVEN
111+
val manager = basicValueManager(0)
112+
manager += IsNotEqualToValidator(
113+
other = 9,
114+
message = { "$it is invalid" }
115+
)
116+
117+
// WHEN
118+
manager.update { it + 9 }
119+
120+
// THEN
121+
assertEquals(0, manager.value)
122+
assertFalse(manager.isValid, "should be invalid using is not equal to validator")
123+
assertEquals("9 is invalid", manager.messages.first())
124+
}
125+
126+
@Test
127+
fun shouldBeValidWithIsNotNullValidator() {
128+
// GIVEN
129+
val manager = basicValueManager<Int?>(0)
130+
manager += IsNotNullValidator(
131+
message = { "$it is invalid" }
132+
)
133+
134+
// WHEN
135+
manager.update { 5 }
136+
137+
// THEN
138+
assertEquals(5, manager.value)
139+
assertTrue(manager.isValid, "should be valid using is not null validator")
140+
assertTrue(manager.messages.isEmpty(), "should messages be empty having valid is not null validator")
141+
}
142+
143+
@Test
144+
fun shouldBeInvalidWithIsNotNullValidator() {
145+
// GIVEN
146+
val manager = basicValueManager<Int?>(0)
147+
manager += IsNotNullValidator(
148+
message = { "$it is invalid" }
149+
)
150+
151+
// WHEN
152+
manager.update { null }
153+
154+
// THEN
155+
assertEquals(0, manager.value)
156+
assertFalse(manager.isValid, "should be invalid using is not null validator")
157+
assertEquals("null is invalid", manager.messages.first())
158+
}
159+
160+
@Test
161+
fun shouldBeValidWithIsNullValidator() {
162+
// GIVEN
163+
val manager = basicValueManager<Int?>(0)
164+
manager += IsNullValidator(
165+
message = { "$it is invalid" }
166+
)
167+
168+
// WHEN
169+
manager.update { null }
170+
171+
// THEN
172+
assertEquals(null, manager.value)
173+
assertTrue(manager.isValid, "should be valid using is null validator")
174+
assertTrue(manager.messages.isEmpty(), "should messages be empty having valid is null validator")
175+
}
176+
177+
@Test
178+
fun shouldBeInvalidWithIsNullValidator() {
179+
// GIVEN
180+
val manager = basicValueManager<Int?>(0)
181+
manager += IsNullValidator(
182+
message = { "$it is invalid" }
183+
)
184+
185+
// WHEN
186+
manager.update { 1 }
187+
188+
// THEN
189+
assertEquals(0, manager.value)
190+
assertFalse(manager.isValid, "should be invalid using is null validator")
191+
assertEquals("1 is invalid", manager.messages.first())
192+
}
193+
194+
@Test
195+
fun shouldBeValidWithNotInValidator() {
196+
// GIVEN
197+
val manager = basicValueManager<Int?>(0)
198+
manager += NotInValidator(
199+
values = listOf(1, 2, 3, 4, 5),
200+
message = { "$it is invalid" }
201+
)
202+
203+
// WHEN
204+
manager.update { 9 }
205+
206+
// THEN
207+
assertEquals(9, manager.value)
208+
assertTrue(manager.isValid, "should be valid using not in validator")
209+
assertTrue(manager.messages.isEmpty(), "should messages be empty having valid not in validator")
210+
}
211+
212+
@Test
213+
fun shouldBeInvalidWithNotInValidator() {
214+
// GIVEN
215+
val manager = basicValueManager(0)
216+
manager += NotInValidator(
217+
values = listOf(1, 2, 3, 4, 5),
218+
message = { "$it is invalid" }
219+
)
220+
221+
// WHEN
222+
manager.update { 2 }
223+
224+
// THEN
225+
assertEquals(0, manager.value)
226+
assertFalse(manager.isValid, "should be invalid using not in validator")
227+
assertEquals("2 is invalid", manager.messages.first())
228+
}
229+
}

0 commit comments

Comments
 (0)