@@ -5,37 +5,62 @@ import 'package:form_builder_validators/form_builder_validators.dart';
5
5
void main () {
6
6
final Faker faker = Faker .instance;
7
7
final String customErrorMessage = faker.lorem.sentence ();
8
+
8
9
group ('Has lowercase chars -' , () {
10
+ final HasLowercaseCharsValidator validator = HasLowercaseCharsValidator ();
11
+
9
12
test ('should return null when the value has at least 1 lowercase character' ,
10
13
() {
11
- final HasLowercaseCharsValidator validator = HasLowercaseCharsValidator ();
12
- final String ? result = validator.validate ('Password123' );
14
+ // Arrange
15
+ const String value = 'Password123' ;
16
+
17
+ // Act
18
+ final String ? result = validator.validate (value);
19
+
20
+ // Assert
13
21
expect (result, isNull);
14
22
});
15
23
16
24
test (
17
25
'should return null when the value has at least 3 lowercase characters' ,
18
26
() {
27
+ // Arrange
19
28
final HasLowercaseCharsValidator validator =
20
29
HasLowercaseCharsValidator (atLeast: 3 );
21
- final String ? result = validator.validate ('paSsword123' );
30
+ const String value = 'paSsword123' ;
31
+
32
+ // Act
33
+ final String ? result = validator.validate (value);
34
+
35
+ // Assert
22
36
expect (result, isNull);
23
37
});
24
38
25
39
test (
26
40
'should return the custom error message when the value does not have any lowercase characters' ,
27
41
() {
42
+ // Arrange
28
43
final HasLowercaseCharsValidator validator =
29
44
HasLowercaseCharsValidator (errorText: customErrorMessage);
30
- final String ? result = validator.validate ('PASSWORD123' );
45
+ const String value = 'PASSWORD123' ;
46
+
47
+ // Act
48
+ final String ? result = validator.validate (value);
49
+
50
+ // Assert
31
51
expect (result, equals (customErrorMessage));
32
52
});
33
53
34
54
test (
35
55
'should return the default error message when the value does not have any lowercase characters' ,
36
56
() {
37
- final HasLowercaseCharsValidator validator = HasLowercaseCharsValidator ();
38
- final String ? result = validator.validate ('PASSWORD123' );
57
+ // Arrange
58
+ const String value = 'PASSWORD123' ;
59
+
60
+ // Act
61
+ final String ? result = validator.validate (value);
62
+
63
+ // Assert
39
64
expect (
40
65
result,
41
66
equals (
@@ -44,74 +69,124 @@ void main() {
44
69
);
45
70
});
46
71
47
- test (
48
- 'should return null when the value has exactly 1 lowercase character' ,
49
- () {
50
- final HasLowercaseCharsValidator validator =
51
- HasLowercaseCharsValidator ();
52
- final String ? result = validator.validate ('Password' );
53
- expect (result, isNull);
54
- },
55
- );
72
+ test ('should return null when the value has exactly 1 lowercase character' ,
73
+ () {
74
+ // Arrange
75
+ const String value = 'Password' ;
56
76
57
- test (
58
- 'should return the custom error message when the value does not have enough lowercase characters' ,
59
- () {
60
- final HasLowercaseCharsValidator validator = HasLowercaseCharsValidator (
61
- atLeast: 2 ,
62
- errorText: customErrorMessage,
63
- );
64
- final String ? result = validator.validate ('PASSWORD' );
65
- expect (result, equals (customErrorMessage));
66
- },
67
- );
77
+ // Act
78
+ final String ? result = validator.validate (value);
79
+
80
+ // Assert
81
+ expect (result, isNull);
82
+ });
68
83
69
84
test (
70
- 'should return the default error message when the value does not have enough lowercase characters' ,
71
- () {
72
- final HasLowercaseCharsValidator validator =
73
- HasLowercaseCharsValidator (atLeast : 2 );
74
- final String ? result = validator. validate ( 'PASSWORD' );
75
- expect (
76
- result,
77
- equals (
78
- FormBuilderLocalizations .current. containsLowercaseCharErrorText ( 2 ),
79
- ),
80
- );
81
- },
82
- );
85
+ 'should return the custom error message when the value does not have enough lowercase characters' ,
86
+ () {
87
+ // Arrange
88
+ final HasLowercaseCharsValidator validator =
89
+ HasLowercaseCharsValidator (atLeast : 2 , errorText : customErrorMessage );
90
+ const String value = 'PASSWORD' ;
91
+
92
+ // Act
93
+ final String ? result = validator. validate (value);
94
+
95
+ // Assert
96
+ expect (result, equals (customErrorMessage));
97
+ } );
83
98
84
99
test (
85
- 'should return the default error message when the value is an empty string' ,
86
- () {
87
- final HasLowercaseCharsValidator validator =
88
- HasLowercaseCharsValidator ();
89
- final String ? result = validator.validate ('' );
90
- expect (
91
- result,
92
- FormBuilderLocalizations .current.containsLowercaseCharErrorText (1 ),
93
- );
94
- },
95
- );
100
+ 'should return the default error message when the value does not have enough lowercase characters' ,
101
+ () {
102
+ // Arrange
103
+ final HasLowercaseCharsValidator validator =
104
+ HasLowercaseCharsValidator (atLeast: 2 );
105
+ const String value = 'PASSWORD' ;
106
+
107
+ // Act
108
+ final String ? result = validator.validate (value);
109
+
110
+ // Assert
111
+ expect (
112
+ result,
113
+ equals (
114
+ FormBuilderLocalizations .current.containsLowercaseCharErrorText (2 ),
115
+ ),
116
+ );
117
+ });
96
118
97
119
test (
98
- 'should return null when the value is an empty string' ,
99
- () {
100
- final HasLowercaseCharsValidator validator =
101
- HasLowercaseCharsValidator (checkNullOrEmpty: false );
102
- final String ? result = validator.validate ('' );
103
- expect (result, isNull);
104
- },
105
- );
120
+ 'should return the default error message when the value is an empty string' ,
121
+ () {
122
+ // Arrange
123
+ const String value = '' ;
124
+
125
+ // Act
126
+ final String ? result = validator.validate (value);
127
+
128
+ // Assert
129
+ expect (
130
+ result,
131
+ FormBuilderLocalizations .current.containsLowercaseCharErrorText (1 ),
132
+ );
133
+ });
134
+
135
+ test ('should return null when the value is an empty string' , () {
136
+ // Arrange
137
+ final HasLowercaseCharsValidator validator =
138
+ HasLowercaseCharsValidator (checkNullOrEmpty: false );
139
+ const String value = '' ;
140
+
141
+ // Act
142
+ final String ? result = validator.validate (value);
143
+
144
+ // Assert
145
+ expect (result, isNull);
146
+ });
147
+
148
+ test ('should return null when the value is null' , () {
149
+ // Arrange
150
+ final HasLowercaseCharsValidator validator =
151
+ HasLowercaseCharsValidator (checkNullOrEmpty: false );
152
+ const String ? value = null ;
153
+
154
+ // Act
155
+ final String ? result = validator.validate (value);
156
+
157
+ // Assert
158
+ expect (result, isNull);
159
+ });
106
160
107
161
test (
108
- 'should return null when the value is null' ,
109
- () {
110
- final HasLowercaseCharsValidator validator =
111
- HasLowercaseCharsValidator (checkNullOrEmpty: false );
112
- final String ? result = validator.validate (null );
113
- expect (result, isNull);
114
- },
115
- );
162
+ 'should return the custom error message when using a custom regex and the value does not match' ,
163
+ () {
164
+ // Arrange
165
+ final HasLowercaseCharsValidator validator = HasLowercaseCharsValidator (
166
+ regex: RegExp ('[a-z]' ),
167
+ errorText: customErrorMessage,
168
+ );
169
+ const String value = 'PASSWORD' ;
170
+
171
+ // Act
172
+ final String ? result = validator.validate (value);
173
+
174
+ // Assert
175
+ expect (result, equals (customErrorMessage));
176
+ });
177
+
178
+ test ('should return null when using a custom regex and the value matches' ,
179
+ () {
180
+ // Arrange
181
+ final HasLowercaseCharsValidator validator =
182
+ HasLowercaseCharsValidator (regex: RegExp ('[a-z]' ));
183
+ const String value = 'Password' ;
184
+
185
+ // Act
186
+ final String ? result = validator.validate (value);
187
+
188
+ // Assert
189
+ expect (result, isNull);
190
+ });
116
191
});
117
192
}
0 commit comments