Skip to content

Commit a21c3fd

Browse files
committed
Tests
1 parent 699485c commit a21c3fd

File tree

48 files changed

+5674
-372
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+5674
-372
lines changed

lib/form_builder_validators.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export 'localization/intl/messages_tr.dart';
3131
export 'localization/intl/messages_uk.dart';
3232
export 'localization/intl/messages_zh.dart';
3333
export 'localization/l10n.dart';
34+
export 'src/base_validator.dart';
3435
export 'src/bool/bool.dart';
3536
export 'src/collection/collection.dart';
3637
export 'src/core/core.dart';

lib/src/network/url_validator.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import '../../form_builder_validators.dart';
2-
import '../base_validator.dart';
32

43
class UrlValidator extends BaseValidator<String> {
54
UrlValidator({

lib/src/numeric/range_validator.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import '../../form_builder_validators.dart';
2-
import '../base_validator.dart';
32

43
class RangeValidator<T> extends BaseValidator<T> {
54
RangeValidator(

lib/src/usecase/password_validator.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'package:flutter/widgets.dart';
22

33
import '../../form_builder_validators.dart';
4-
import '../base_validator.dart';
54

65
class PasswordValidator extends BaseValidator<String> {
76
const PasswordValidator({

lib/src/usecase/username_validator.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'package:flutter/widgets.dart';
22

33
import '../../form_builder_validators.dart';
4-
import '../base_validator.dart';
54

65
class UsernameValidator extends BaseValidator<String> {
76
const UsernameValidator({
Lines changed: 104 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,89 @@
11
import 'package:faker_dart/faker_dart.dart';
2+
import 'package:flutter/widgets.dart';
23
import 'package:flutter_test/flutter_test.dart';
34
import 'package:form_builder_validators/form_builder_validators.dart';
4-
import 'package:form_builder_validators/src/base_validator.dart';
55

66
void main() {
77
final Faker faker = Faker.instance;
8-
final String customErrorMessage = faker.lorem.sentence();
9-
group('Aggregate -', () {
10-
test('should return null when all validators return null', () {
8+
final String customErrorMessage1 = faker.lorem.sentence();
9+
final String customErrorMessage2 = faker.lorem.sentence();
10+
11+
group('AggregateValidator -', () {
12+
test('should return null if all validators pass', () {
13+
// Arrange
14+
final AggregateValidator<String> validator =
15+
AggregateValidator<String>(<FormFieldValidator<String>>[
16+
FormBuilderValidators.required(),
17+
FormBuilderValidators.minLength(3),
18+
]);
19+
const String validValue = 'abc';
20+
21+
// Act
22+
final String? result = validator.validate(validValue);
23+
24+
// Assert
25+
expect(result, isNull);
26+
});
27+
28+
test('should return single error message if one validator fails', () {
29+
// Arrange
30+
final AggregateValidator<String> validator =
31+
AggregateValidator<String>(<FormFieldValidator<String>>[
32+
FormBuilderValidators.required(errorText: customErrorMessage1),
33+
FormBuilderValidators.minLength(5, errorText: customErrorMessage2),
34+
]);
35+
const String invalidValue = 'abc';
36+
37+
// Act
38+
final String? result = validator.validate(invalidValue);
39+
40+
// Assert
41+
expect(result, customErrorMessage2);
42+
});
43+
44+
test('should return multiple error messages if multiple validators fail',
45+
() {
46+
// Arrange
47+
final AggregateValidator<String> validator =
48+
AggregateValidator<String>(<FormFieldValidator<String>>[
49+
FormBuilderValidators.required(errorText: customErrorMessage1),
50+
FormBuilderValidators.minLength(5, errorText: customErrorMessage2),
51+
]);
52+
const String invalidValue = '';
53+
54+
// Act
55+
final String? result = validator.validate(invalidValue);
56+
57+
// Assert
58+
expect(result, '$customErrorMessage1\n$customErrorMessage2');
59+
});
60+
61+
test('should return custom error message from validator if value is null',
62+
() {
1163
// Arrange
12-
const AggregateValidator validator = AggregateValidator(
13-
validators: <IsTrueValidator>[
14-
IsTrueValidator(),
15-
IsTrueValidator(),
16-
],
17-
);
18-
const bool value = true;
64+
final AggregateValidator<String> validator =
65+
AggregateValidator<String>(<FormFieldValidator<String>>[
66+
FormBuilderValidators.required(errorText: customErrorMessage1),
67+
]);
68+
const String? value = null;
69+
70+
// Act
71+
final String? result = validator.validate(value);
72+
73+
// Assert
74+
expect(result, customErrorMessage1);
75+
});
76+
77+
test('should return null if value is null and null check is disabled', () {
78+
// Arrange
79+
final AggregateValidator<String> validator =
80+
AggregateValidator<String>(<FormFieldValidator<String>>[
81+
FormBuilderValidators.required(
82+
errorText: customErrorMessage1,
83+
checkNullOrEmpty: false,
84+
),
85+
]);
86+
const String? value = null;
1987

2088
// Act
2189
final String? result = validator.validate(value);
@@ -24,22 +92,38 @@ void main() {
2492
expect(result, isNull);
2593
});
2694

27-
test('should return the error message when one validator returns an error',
95+
test('should return custom error message from validator if value is empty',
2896
() {
2997
// Arrange
30-
final AggregateValidator validator = AggregateValidator(
31-
validators: <BaseValidator<bool>>[
32-
const IsTrueValidator(),
33-
IsFalseValidator(errorText: customErrorMessage),
34-
],
35-
);
36-
const bool value = true;
98+
final AggregateValidator<String> validator =
99+
AggregateValidator<String>(<FormFieldValidator<String>>[
100+
FormBuilderValidators.required(errorText: customErrorMessage1),
101+
]);
102+
const String value = '';
103+
104+
// Act
105+
final String? result = validator.validate(value);
106+
107+
// Assert
108+
expect(result, customErrorMessage1);
109+
});
110+
111+
test('should return null if value is empty and null check is disabled', () {
112+
// Arrange
113+
final AggregateValidator<String> validator =
114+
AggregateValidator<String>(<FormFieldValidator<String>>[
115+
FormBuilderValidators.required(
116+
errorText: customErrorMessage1,
117+
checkNullOrEmpty: false,
118+
),
119+
]);
120+
const String value = '';
37121

38122
// Act
39123
final String? result = validator.validate(value);
40124

41125
// Assert
42-
expect(result, equals(customErrorMessage));
126+
expect(result, isNull);
43127
});
44128
});
45129
}
Lines changed: 105 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,90 @@
11
import 'package:faker_dart/faker_dart.dart';
2+
import 'package:flutter/src/widgets/form.dart';
23
import 'package:flutter_test/flutter_test.dart';
34
import 'package:form_builder_validators/form_builder_validators.dart';
4-
import 'package:form_builder_validators/src/base_validator.dart';
55

66
void main() {
77
final Faker faker = Faker.instance;
8-
final String customErrorMessage = faker.lorem.sentence();
9-
group('Compose -', () {
10-
test('should return null when all validators return null', () {
8+
final String customErrorMessage1 = faker.lorem.sentence();
9+
final String customErrorMessage2 = faker.lorem.sentence();
10+
11+
group('ComposeValidator -', () {
12+
test('should return null if all validators pass', () {
13+
// Arrange
14+
final ComposeValidator<String> validator =
15+
ComposeValidator<String>(<FormFieldValidator<String>>[
16+
FormBuilderValidators.required(),
17+
FormBuilderValidators.minLength(3),
18+
]);
19+
const String validValue = 'abc';
20+
21+
// Act
22+
final String? result = validator.validate(validValue);
23+
24+
// Assert
25+
expect(result, isNull);
26+
});
27+
28+
test('should return the first error message if one validator fails', () {
29+
// Arrange
30+
final ComposeValidator<String> validator =
31+
ComposeValidator<String>(<FormFieldValidator<String>>[
32+
FormBuilderValidators.required(errorText: customErrorMessage1),
33+
FormBuilderValidators.minLength(5, errorText: customErrorMessage2),
34+
]);
35+
const String invalidValue = 'abc';
36+
37+
// Act
38+
final String? result = validator.validate(invalidValue);
39+
40+
// Assert
41+
expect(result, customErrorMessage2);
42+
});
43+
44+
test('should return the first error message if multiple validators fail',
45+
() {
1146
// Arrange
12-
const ComposeValidator validator = ComposeValidator(
13-
validators: <BaseValidator>[
14-
EqualLengthValidator(length: 3),
15-
UniqueValidator(),
16-
IsFalseValidator(),
17-
IsTrueValidator(),
18-
],
19-
);
20-
const List<String> value = <String>['a', 'b', 'c'];
47+
final ComposeValidator<String> validator =
48+
ComposeValidator<String>(<FormFieldValidator<String>>[
49+
FormBuilderValidators.required(errorText: customErrorMessage1),
50+
FormBuilderValidators.minLength(5, errorText: customErrorMessage2),
51+
]);
52+
const String invalidValue = '';
53+
54+
// Act
55+
final String? result = validator.validate(invalidValue);
56+
57+
// Assert
58+
expect(result, customErrorMessage1);
59+
});
60+
61+
test(
62+
'should return the custom error message from validator if value is null',
63+
() {
64+
// Arrange
65+
final ComposeValidator<String> validator =
66+
ComposeValidator<String>(<FormFieldValidator<String>>[
67+
FormBuilderValidators.required(errorText: customErrorMessage1),
68+
]);
69+
const String? value = null;
70+
71+
// Act
72+
final String? result = validator.validate(value);
73+
74+
// Assert
75+
expect(result, customErrorMessage1);
76+
});
77+
78+
test('should return null if value is null and null check is disabled', () {
79+
// Arrange
80+
final ComposeValidator<String> validator =
81+
ComposeValidator<String>(<FormFieldValidator<String>>[
82+
FormBuilderValidators.required(
83+
errorText: customErrorMessage1,
84+
checkNullOrEmpty: false,
85+
),
86+
]);
87+
const String? value = null;
2188

2289
// Act
2390
final String? result = validator.validate(value);
@@ -27,25 +94,38 @@ void main() {
2794
});
2895

2996
test(
30-
'should return the error message when one of the validators returns an error message',
97+
'should return the custom error message from validator if value is empty',
3198
() {
3299
// Arrange
33-
final ComposeValidator validator = ComposeValidator(
34-
validators: <BaseValidator>[
35-
const EqualLengthValidator(length: 3),
36-
const UniqueValidator(),
37-
const IsFalseValidator(),
38-
const IsTrueValidator(),
39-
],
40-
errorText: customErrorMessage,
41-
);
42-
const List<String> value = <String>['a', 'b', 'a'];
100+
final ComposeValidator<String> validator =
101+
ComposeValidator<String>(<FormFieldValidator<String>>[
102+
FormBuilderValidators.required(errorText: customErrorMessage1),
103+
]);
104+
const String value = '';
105+
106+
// Act
107+
final String? result = validator.validate(value);
108+
109+
// Assert
110+
expect(result, customErrorMessage1);
111+
});
112+
113+
test('should return null if value is empty and null check is disabled', () {
114+
// Arrange
115+
final ComposeValidator<String> validator =
116+
ComposeValidator<String>(<FormFieldValidator<String>>[
117+
FormBuilderValidators.required(
118+
errorText: customErrorMessage1,
119+
checkNullOrEmpty: false,
120+
),
121+
]);
122+
const String value = '';
43123

44124
// Act
45125
final String? result = validator.validate(value);
46126

47127
// Assert
48-
expect(result, equals(customErrorMessage));
128+
expect(result, isNull);
49129
});
50130
});
51131
}

0 commit comments

Comments
 (0)