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