@@ -3,213 +3,70 @@ namespace Nancy.Validation.FluentValidation.Tests
3
3
using FakeItEasy ;
4
4
using Nancy . Tests ;
5
5
using Xunit ;
6
- using global ::FluentValidation . Internal ;
7
6
using global ::FluentValidation . Validators ;
8
7
9
8
public class DefaultFluentAdapterFactoryFixture
10
9
{
11
- private PropertyRule rule ;
12
- private DefaultFluentAdapterFactory factory ;
13
-
14
- public DefaultFluentAdapterFactoryFixture ( )
15
- {
16
- this . rule = new PropertyRule ( null , null , null , null , null , null ) ;
17
- this . factory = new DefaultFluentAdapterFactory ( ) ;
18
- }
19
-
20
10
[ Fact ]
21
- public void Should_create_custom_adapter_for_unknown_validator ( )
11
+ public void Should_return_adapter_that_can_handle_validator ( )
22
12
{
23
13
// Given
24
14
var validator = A . Fake < IPropertyValidator > ( ) ;
25
15
26
- // When
27
- var result = factory . Create ( this . rule , validator ) ;
16
+ var adapter1 = A . Fake < IFluentAdapter > ( ) ;
17
+ A . CallTo ( ( ) => adapter1 . CanHandle ( A < IPropertyValidator > . _ ) ) . Returns ( false ) ;
28
18
29
- // Then
30
- result . ShouldBeOfType < FluentAdapter > ( ) ;
31
- }
19
+ var adapter2 = A . Fake < IFluentAdapter > ( ) ;
20
+ A . CallTo ( ( ) => adapter2 . CanHandle ( A < IPropertyValidator > . _ ) ) . Returns ( true ) ;
32
21
33
- [ Fact ]
34
- public void Should_create_emailadapter_for_emailvalidator ( )
35
- {
36
- // Given
37
- var validator = new EmailValidator ( ) ;
22
+ var factory = CreateFactory ( adapter1 , adapter2 ) ;
38
23
39
24
// When
40
- var result = factory . Create ( this . rule , validator ) ;
25
+ var result = factory . Create ( validator ) ;
41
26
42
27
// Then
43
- result . ShouldBeOfType < EmailAdapter > ( ) ;
28
+ result . ShouldBeSameAs ( adapter2 ) ;
44
29
}
45
30
46
31
[ Fact ]
47
- public void Should_create_equaladapter_for_equalvalidator ( )
32
+ public void Should_pass_validator_to_canhandle_method_on_adapter ( )
48
33
{
49
- // Given
50
- var validator = new EqualValidator ( 10 ) ;
51
-
52
- // When
53
- var result = factory . Create ( this . rule , validator ) ;
54
-
55
- // Then
56
- result . ShouldBeOfType < EqualAdapter > ( ) ;
57
- }
58
-
59
- [ Fact ]
60
- public void Should_create_exactlengthadapter_for_exactlengthvalidator ( )
61
- {
62
- // Given
63
- var validator = new ExactLengthValidator ( 10 ) ;
64
-
65
- // When
66
- var result = factory . Create ( this . rule , validator ) ;
67
-
68
- // Then
69
- result . ShouldBeOfType < ExactLengthAdapater > ( ) ;
70
- }
71
-
72
- [ Fact ]
73
- public void Should_create_exclusivebetweenadapter_for_exclusivebetweenvalidator ( )
74
- {
75
- // Given
76
- var validator = new ExclusiveBetweenValidator ( 1 , 10 ) ;
77
-
78
- // When
79
- var result = factory . Create ( this . rule , validator ) ;
80
-
81
- // Then
82
- result . ShouldBeOfType < ExclusiveBetweenAdapter > ( ) ;
83
- }
84
-
85
- [ Fact ]
86
- public void Should_create_greaterthanadapter_for_greaterthanvalidator ( )
87
- {
88
- // Given
89
- var validator = new GreaterThanValidator ( 1 ) ;
90
-
91
- // When
92
- var result = factory . Create ( this . rule , validator ) ;
93
-
94
- // Then
95
- result . ShouldBeOfType < GreaterThanAdapter > ( ) ;
96
- }
97
-
98
- [ Fact ]
99
- public void Should_create_greaterthanorequaladapter_for_greaterthanorequalvalidator ( )
100
- {
101
- // Given
102
- var validator = new GreaterThanOrEqualValidator ( 1 ) ;
103
-
104
- // When
105
- var result = factory . Create ( this . rule , validator ) ;
106
-
107
- // Then
108
- result . ShouldBeOfType < GreaterThanOrEqualAdapter > ( ) ;
109
- }
110
-
111
- [ Fact ]
112
- public void Should_create_inclusivebetweenadapter_for_inclusivebetweenvalidator ( )
113
- {
114
- // Given
115
- var validator = new InclusiveBetweenValidator ( 1 , 10 ) ;
116
-
117
- // When
118
- var result = factory . Create ( this . rule , validator ) ;
119
-
120
- // Then
121
- result . ShouldBeOfType < InclusiveBetweenAdapter > ( ) ;
122
- }
123
-
124
- [ Fact ]
125
- public void Should_create_lengthadapter_for_lengthvalidator ( )
126
- {
127
- // Given
128
- var validator = new LengthValidator ( 1 , 10 ) ;
129
-
130
- // When
131
- var result = factory . Create ( this . rule , validator ) ;
132
-
133
- // Then
134
- result . ShouldBeOfType < LengthAdapter > ( ) ;
135
- }
136
-
137
- [ Fact ]
138
- public void Should_create_lessthanadapter_for_lessthanvalidator ( )
139
- {
140
- // Given
141
- var validator = new LessThanValidator ( 1 ) ;
142
-
143
- // When
144
- var result = factory . Create ( this . rule , validator ) ;
145
-
146
- // Then
147
- result . ShouldBeOfType < LessThanAdapter > ( ) ;
148
- }
149
-
150
- [ Fact ]
151
- public void Should_create_lessthanorequaladapter_for_lessthanorequalvalidator ( )
152
- {
153
- // Given
154
- var validator = new LessThanOrEqualValidator ( 1 ) ;
155
-
156
- // When
157
- var result = factory . Create ( this . rule , validator ) ;
158
-
159
- // Then
160
- result . ShouldBeOfType < LessThanOrEqualAdapter > ( ) ;
161
- }
34
+ var validator = A . Fake < IPropertyValidator > ( ) ;
35
+ var adapter = A . Fake < IFluentAdapter > ( ) ;
162
36
163
- [ Fact ]
164
- public void Should_create_notemptyadapter_for_notemptyvalidator ( )
165
- {
166
- // Given
167
- var validator = new NotEmptyValidator ( 1 ) ;
37
+ var factory = CreateFactory ( adapter ) ;
168
38
169
39
// When
170
- var result = factory . Create ( this . rule , validator ) ;
40
+ factory . Create ( validator ) ;
171
41
172
42
// Then
173
- result . ShouldBeOfType < NotEmptyAdapter > ( ) ;
43
+ A . CallTo ( ( ) => adapter . CanHandle ( validator ) ) . MustHaveHappened ( ) ;
174
44
}
175
45
176
46
[ Fact ]
177
- public void Should_create_notequaladapter_for_notequalvalidator ( )
47
+ public void Should_return_fallback_adapter_when_no_other_adapter_can_handle_validator ( )
178
48
{
179
49
// Given
180
- var validator = new NotEqualValidator ( 1 ) ;
50
+ var validator = A . Fake < IPropertyValidator > ( ) ;
181
51
182
- // When
183
- var result = factory . Create ( this . rule , validator ) ;
52
+ var adapter1 = A . Fake < IFluentAdapter > ( ) ;
53
+ A . CallTo ( ( ) => adapter1 . CanHandle ( A < IPropertyValidator > . _ ) ) . Returns ( false ) ;
184
54
185
- // Then
186
- result . ShouldBeOfType < NotEqualAdapter > ( ) ;
187
- }
55
+ var adapter2 = A . Fake < IFluentAdapter > ( ) ;
56
+ A . CallTo ( ( ) => adapter2 . CanHandle ( A < IPropertyValidator > . _ ) ) . Returns ( false ) ;
188
57
189
- [ Fact ]
190
- public void Should_create_notnulladapter_for_notnullvalidator ( )
191
- {
192
- // Given
193
- var validator = new NotNullValidator ( ) ;
58
+ var factory = CreateFactory ( adapter1 , adapter2 ) ;
194
59
195
60
// When
196
- var result = factory . Create ( this . rule , validator ) ;
61
+ var result = factory . Create ( validator ) ;
197
62
198
63
// Then
199
- result . ShouldBeOfType < NotNullAdapter > ( ) ;
64
+ result . ShouldBeOfType < FallbackAdapter > ( ) ;
200
65
}
201
66
202
- [ Fact ]
203
- public void Should_create_regularexpressionadapter_for_regularexpressionvalidator ( )
67
+ private static DefaultFluentAdapterFactory CreateFactory ( params IFluentAdapter [ ] adapters )
204
68
{
205
- // Given
206
- var validator = new RegularExpressionValidator ( "[A-Z]*" ) ;
207
-
208
- // When
209
- var result = factory . Create ( this . rule , validator ) ;
210
-
211
- // Then
212
- result . ShouldBeOfType < RegularExpressionAdapter > ( ) ;
69
+ return new DefaultFluentAdapterFactory ( adapters ) ;
213
70
}
214
71
}
215
72
}
0 commit comments