anodator 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +28 -0
- data/LICENSE.txt +20 -0
- data/README.ja.rdoc +33 -0
- data/README.rdoc +41 -0
- data/Rakefile +50 -0
- data/VERSION +1 -0
- data/example/example_01.rb +129 -0
- data/lib/anodator/anodator_error.rb +5 -0
- data/lib/anodator/check_result.rb +41 -0
- data/lib/anodator/checker.rb +58 -0
- data/lib/anodator/input_spec.rb +199 -0
- data/lib/anodator/input_spec_item.rb +33 -0
- data/lib/anodator/message.rb +59 -0
- data/lib/anodator/output_spec.rb +164 -0
- data/lib/anodator/rule.rb +97 -0
- data/lib/anodator/rule_set.rb +52 -0
- data/lib/anodator/utils.rb +234 -0
- data/lib/anodator/validator/base.rb +168 -0
- data/lib/anodator/validator/blank_validator.rb +14 -0
- data/lib/anodator/validator/complex_validator.rb +60 -0
- data/lib/anodator/validator/configuration_error.rb +8 -0
- data/lib/anodator/validator/date_validator.rb +151 -0
- data/lib/anodator/validator/format_validator.rb +48 -0
- data/lib/anodator/validator/inclusion_validator.rb +21 -0
- data/lib/anodator/validator/length_validator.rb +37 -0
- data/lib/anodator/validator/numeric_validator.rb +46 -0
- data/lib/anodator/validator/presence_validator.rb +14 -0
- data/lib/anodator/validator.rb +10 -0
- data/lib/anodator.rb +3 -0
- data/spec/anodator/check_result_spec.rb +101 -0
- data/spec/anodator/checker_spec.rb +273 -0
- data/spec/anodator/input_spec_item_spec.rb +100 -0
- data/spec/anodator/input_spec_spec.rb +584 -0
- data/spec/anodator/message_spec.rb +112 -0
- data/spec/anodator/output_spec_spec.rb +355 -0
- data/spec/anodator/rule_set_spec.rb +190 -0
- data/spec/anodator/rule_spec.rb +169 -0
- data/spec/anodator/validator/base_spec.rb +214 -0
- data/spec/anodator/validator/blank_validator_spec.rb +52 -0
- data/spec/anodator/validator/complex_validator_spec.rb +268 -0
- data/spec/anodator/validator/date_validator_spec.rb +350 -0
- data/spec/anodator/validator/format_validator_spec.rb +158 -0
- data/spec/anodator/validator/inclusion_validator_spec.rb +77 -0
- data/spec/anodator/validator/length_validator_spec.rb +236 -0
- data/spec/anodator/validator/numeric_validator_spec.rb +468 -0
- data/spec/anodator/validator/presence_validator_spec.rb +52 -0
- data/spec/anodator/validator_spec.rb +16 -0
- data/spec/anodator_spec.rb +2 -0
- data/spec/spec_helper.rb +12 -0
- metadata +188 -0
@@ -0,0 +1,350 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
# Anodator::Validator::DateValidator
|
4
|
+
require "anodator/validator/date_validator"
|
5
|
+
|
6
|
+
include Anodator::Validator
|
7
|
+
|
8
|
+
describe DateValidator, ".new" do
|
9
|
+
context "with no parameters" do
|
10
|
+
it "should raise ArgumentError" do
|
11
|
+
lambda {
|
12
|
+
DateValidator.new
|
13
|
+
}.should raise_error ArgumentError
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "with only target expression" do
|
18
|
+
before(:each) do
|
19
|
+
@new_proc = lambda {
|
20
|
+
DateValidator.new("1")
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should not raise error" do
|
25
|
+
@new_proc.should_not raise_error
|
26
|
+
end
|
27
|
+
|
28
|
+
it { @new_proc.call.format.should == "YYYY-MM-DD" }
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with target expression and :format option" do
|
32
|
+
context ":format option is valid" do
|
33
|
+
before(:each) do
|
34
|
+
@new_proc = lambda {
|
35
|
+
DateValidator.new("1", :format => "YYYY/MM/DD")
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should not raise error" do
|
40
|
+
@new_proc.should_not raise_error
|
41
|
+
end
|
42
|
+
|
43
|
+
context "and :from same format" do
|
44
|
+
before(:each) do
|
45
|
+
@new_proc = lambda {
|
46
|
+
DateValidator.new("1", :format => "YYYY/MM/DD", :from => "2011/01/01")
|
47
|
+
}
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should not raise error" do
|
51
|
+
@new_proc.should_not raise_error
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context ":format option contains double YYYY is invalid" do
|
57
|
+
before(:each) do
|
58
|
+
@new_proc = lambda {
|
59
|
+
DateValidator.new("1", :format => "YYYY/MM-DD YYYY")
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should raise ArgumentError" do
|
64
|
+
@new_proc.should raise_error ArgumentError
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context ":format option not contains D is invalid" do
|
69
|
+
before(:each) do
|
70
|
+
@new_proc = lambda {
|
71
|
+
DateValidator.new("1", :format => "YY/M")
|
72
|
+
}
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should raise ArgumentError" do
|
76
|
+
@new_proc.should raise_error ArgumentError
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "when :format option contains short year with based on 1900" do
|
81
|
+
before(:each) do
|
82
|
+
@new_proc = lambda {
|
83
|
+
DateValidator.new("Birthday",
|
84
|
+
:format => "M/D/YY", :base_year => 1900,
|
85
|
+
:from => "1/25/80", :to => Date.new(2011, 1, 1))
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should not raise error" do
|
90
|
+
@new_proc.should_not raise_error
|
91
|
+
end
|
92
|
+
|
93
|
+
it "#from should be 1980-01-25" do
|
94
|
+
@new_proc.call.from.should == Date.new(1980, 1, 25)
|
95
|
+
end
|
96
|
+
|
97
|
+
it "#to should be 2011-01-01" do
|
98
|
+
@new_proc.call.to.should == Date.new(2011, 1, 1)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
context "with target expression and :from option with Date object" do
|
104
|
+
before(:each) do
|
105
|
+
@new_proc = lambda {
|
106
|
+
DateValidator.new("1", :from => Date.new(2011, 1, 1))
|
107
|
+
}
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should not raise error" do
|
111
|
+
@new_proc.should_not raise_error
|
112
|
+
end
|
113
|
+
|
114
|
+
it "#from should be date object" do
|
115
|
+
@new_proc.call.from.should be_a Date
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context "with target expression and :from option with String object" do
|
120
|
+
before(:each) do
|
121
|
+
@new_proc = lambda {
|
122
|
+
DateValidator.new("1", :from => "2011-01-01")
|
123
|
+
}
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should not raise error" do
|
127
|
+
@new_proc.should_not raise_error
|
128
|
+
end
|
129
|
+
|
130
|
+
it "#from should be date object" do
|
131
|
+
@new_proc.call.from.should be_a Date
|
132
|
+
end
|
133
|
+
|
134
|
+
it "#from should be same date for string expression" do
|
135
|
+
@new_proc.call.from.should == Date.new(2011, 1, 1)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
context "with target expression and :from option with invalid format date String object" do
|
140
|
+
before(:each) do
|
141
|
+
@new_proc = lambda {
|
142
|
+
DateValidator.new("1", :from => "2011-01-34")
|
143
|
+
}
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should raise ArgumentError" do
|
147
|
+
@new_proc.should raise_error ArgumentError
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context "with target expression and :to option with Date object" do
|
152
|
+
before(:each) do
|
153
|
+
@new_proc = lambda {
|
154
|
+
DateValidator.new("1", :to => Date.new(2011, 1, 1))
|
155
|
+
}
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should not raise error" do
|
159
|
+
@new_proc.should_not raise_error
|
160
|
+
end
|
161
|
+
|
162
|
+
it "#to should be date object" do
|
163
|
+
@new_proc.call.to.should be_a Date
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
context "with target expression and :to option with String object" do
|
168
|
+
before(:each) do
|
169
|
+
@new_proc = lambda {
|
170
|
+
DateValidator.new("1", :to => "2011-01-01")
|
171
|
+
}
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should not raise error" do
|
175
|
+
@new_proc.should_not raise_error
|
176
|
+
end
|
177
|
+
|
178
|
+
it "#to should be date object" do
|
179
|
+
@new_proc.call.to.should be_a Date
|
180
|
+
end
|
181
|
+
|
182
|
+
it "#to should be same date for string expression" do
|
183
|
+
@new_proc.call.to.should == Date.new(2011, 1, 1)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
context "with target expression and :to option with invalid format date String object" do
|
188
|
+
before(:each) do
|
189
|
+
@new_proc = lambda {
|
190
|
+
DateValidator.new("1", :to => "2011-01-34")
|
191
|
+
}
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should raise ArgumentError" do
|
195
|
+
@new_proc.should raise_error ArgumentError
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
describe DateValidator, "#valid?" do
|
201
|
+
context "with only target expression" do
|
202
|
+
before(:each) do
|
203
|
+
@validator = DateValidator.new("1")
|
204
|
+
end
|
205
|
+
|
206
|
+
context "invalid date expression" do
|
207
|
+
before(:each) do
|
208
|
+
Validator::Base.values = { "1" => "2011-34-42" }
|
209
|
+
end
|
210
|
+
|
211
|
+
it { @validator.should_not be_valid }
|
212
|
+
end
|
213
|
+
|
214
|
+
context "valid date expression" do
|
215
|
+
before(:each) do
|
216
|
+
Validator::Base.values = { "1" => "2011-04-02" }
|
217
|
+
end
|
218
|
+
|
219
|
+
it { @validator.should be_valid }
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
context "with target expression and :from option" do
|
224
|
+
before(:each) do
|
225
|
+
@validator = DateValidator.new("1", :from => "2011-04-01")
|
226
|
+
end
|
227
|
+
|
228
|
+
context "invalid date expression" do
|
229
|
+
before(:each) do
|
230
|
+
Validator::Base.values = { "1" => "2011-34-42" }
|
231
|
+
end
|
232
|
+
|
233
|
+
it { @validator.should_not be_valid }
|
234
|
+
end
|
235
|
+
|
236
|
+
context "invalid date by :from option" do
|
237
|
+
before(:each) do
|
238
|
+
Validator::Base.values = { "1" => "2011-03-31" }
|
239
|
+
end
|
240
|
+
|
241
|
+
it { @validator.should_not be_valid }
|
242
|
+
end
|
243
|
+
|
244
|
+
context "valid date by :from option" do
|
245
|
+
before(:each) do
|
246
|
+
Validator::Base.values = { "1" => "2011-04-01" }
|
247
|
+
end
|
248
|
+
|
249
|
+
it { @validator.should be_valid }
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
context "with target expression and :to option" do
|
254
|
+
before(:each) do
|
255
|
+
@validator = DateValidator.new("1", :to => "2011-04-01")
|
256
|
+
end
|
257
|
+
|
258
|
+
context "invalid date expression" do
|
259
|
+
before(:each) do
|
260
|
+
Validator::Base.values = { "1" => "2011-34-42" }
|
261
|
+
end
|
262
|
+
|
263
|
+
it { @validator.should_not be_valid }
|
264
|
+
end
|
265
|
+
|
266
|
+
context "invalid date by :to option" do
|
267
|
+
before(:each) do
|
268
|
+
Validator::Base.values = { "1" => "2011-04-02" }
|
269
|
+
end
|
270
|
+
|
271
|
+
it { @validator.should_not be_valid }
|
272
|
+
end
|
273
|
+
|
274
|
+
context "valid date by :to option" do
|
275
|
+
before(:each) do
|
276
|
+
Validator::Base.values = { "1" => "2011-04-01" }
|
277
|
+
end
|
278
|
+
|
279
|
+
it { @validator.should be_valid }
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
context "with target expression and :to and :from option" do
|
284
|
+
before(:each) do
|
285
|
+
@validator = DateValidator.new("1", :from => "2010-04-01", :to => "2011-03-31")
|
286
|
+
end
|
287
|
+
|
288
|
+
context "invalid date expression" do
|
289
|
+
before(:each) do
|
290
|
+
Validator::Base.values = { "1" => "2011-34-42" }
|
291
|
+
end
|
292
|
+
|
293
|
+
it { @validator.should_not be_valid }
|
294
|
+
end
|
295
|
+
|
296
|
+
context "invalid date by :from option" do
|
297
|
+
before(:each) do
|
298
|
+
Validator::Base.values = { "1" => "2010-03-31" }
|
299
|
+
end
|
300
|
+
|
301
|
+
it { @validator.should_not be_valid }
|
302
|
+
end
|
303
|
+
|
304
|
+
context "invalid date by :to option" do
|
305
|
+
before(:each) do
|
306
|
+
Validator::Base.values = { "1" => "2011-04-01" }
|
307
|
+
end
|
308
|
+
|
309
|
+
it { @validator.should_not be_valid }
|
310
|
+
end
|
311
|
+
|
312
|
+
context "valid date by :from and :to option" do
|
313
|
+
before(:each) do
|
314
|
+
Validator::Base.values = { "1" => "2010-05-31" }
|
315
|
+
end
|
316
|
+
|
317
|
+
it { @validator.should be_valid }
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
context "with target expression with :allow_blank => true" do
|
322
|
+
before(:each) do
|
323
|
+
@validator = DateValidator.new("1", :allow_blank => true)
|
324
|
+
end
|
325
|
+
|
326
|
+
context "invalid date expression" do
|
327
|
+
before(:each) do
|
328
|
+
Validator::Base.values = { "1" => "2011-34-42" }
|
329
|
+
end
|
330
|
+
|
331
|
+
it { @validator.should_not be_valid }
|
332
|
+
end
|
333
|
+
|
334
|
+
context "valid date expression" do
|
335
|
+
before(:each) do
|
336
|
+
Validator::Base.values = { "1" => "2011-04-02" }
|
337
|
+
end
|
338
|
+
|
339
|
+
it { @validator.should be_valid }
|
340
|
+
end
|
341
|
+
|
342
|
+
context "blank value" do
|
343
|
+
before(:each) do
|
344
|
+
Validator::Base.values = { "1" => "" }
|
345
|
+
end
|
346
|
+
|
347
|
+
it { @validator.should be_valid }
|
348
|
+
end
|
349
|
+
end
|
350
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
# Anodator::Validator::FormatValidator
|
4
|
+
require "anodator/validator/format_validator"
|
5
|
+
|
6
|
+
describe Anodator::Validator::FormatValidator, ".new" do
|
7
|
+
context "with no parameters" do
|
8
|
+
it "should raise ArgumentError" do
|
9
|
+
lambda {
|
10
|
+
Anodator::Validator::FormatValidator.new
|
11
|
+
}.should raise_error ArgumentError
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "with only target parameter" do
|
16
|
+
before(:each) do
|
17
|
+
@validator_new_proc = lambda {
|
18
|
+
Anodator::Validator::FormatValidator.new("1")
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should not raise error" do
|
23
|
+
@validator_new_proc.should_not raise_error ArgumentError
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "with target parameter and :format option" do
|
28
|
+
it "should not raise error" do
|
29
|
+
lambda {
|
30
|
+
Anodator::Validator::FormatValidator.new("1", :format => /^\d+$/)
|
31
|
+
}.should_not raise_error
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "with target parameter and :format option by string" do
|
36
|
+
it "should not raise error" do
|
37
|
+
lambda {
|
38
|
+
Anodator::Validator::FormatValidator.new("1", :format => '\d+')
|
39
|
+
}.should_not raise_error
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should :format to regexp option" do
|
43
|
+
Anodator::Validator::FormatValidator.new("1", :format => '\d+').format.should == /\d+/
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe Anodator::Validator::FormatValidator, "#valid?" do
|
49
|
+
context "without :format option" do
|
50
|
+
before(:each) do
|
51
|
+
@validator =
|
52
|
+
Anodator::Validator::FormatValidator.new("1", :allow_blank => false)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should raise error" do
|
56
|
+
lambda {
|
57
|
+
@validator.valid?
|
58
|
+
}.should raise_error ConfigurationError
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "for digit string with no blank" do
|
63
|
+
before(:each) do
|
64
|
+
@validator =
|
65
|
+
Anodator::Validator::FormatValidator.new("1",
|
66
|
+
:format => /^\d+$/,
|
67
|
+
:allow_blank => false)
|
68
|
+
end
|
69
|
+
|
70
|
+
context "target value is blank" do
|
71
|
+
before(:each) do
|
72
|
+
Anodator::Validator::Base.values = { "1" => "" }
|
73
|
+
end
|
74
|
+
|
75
|
+
it { @validator.should_not be_valid }
|
76
|
+
end
|
77
|
+
|
78
|
+
context "target value is '1'" do
|
79
|
+
before(:each) do
|
80
|
+
Anodator::Validator::Base.values = { "1" => "1" }
|
81
|
+
end
|
82
|
+
|
83
|
+
it { @validator.should be_valid }
|
84
|
+
end
|
85
|
+
|
86
|
+
context "target value is 'some message'" do
|
87
|
+
before(:each) do
|
88
|
+
Anodator::Validator::Base.values = { "1" => "some message" }
|
89
|
+
end
|
90
|
+
|
91
|
+
it { @validator.should_not be_valid }
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "for digit string with allow blank" do
|
96
|
+
before(:each) do
|
97
|
+
@validator =
|
98
|
+
Anodator::Validator::FormatValidator.new("1",
|
99
|
+
:format => /^\d+$/,
|
100
|
+
:allow_blank => true)
|
101
|
+
end
|
102
|
+
|
103
|
+
context "target value is blank" do
|
104
|
+
before(:each) do
|
105
|
+
Anodator::Validator::Base.values = { "1" => "" }
|
106
|
+
end
|
107
|
+
|
108
|
+
it { @validator.should be_valid }
|
109
|
+
end
|
110
|
+
|
111
|
+
context "target value is '1'" do
|
112
|
+
before(:each) do
|
113
|
+
Anodator::Validator::Base.values = { "1" => "1" }
|
114
|
+
end
|
115
|
+
|
116
|
+
it { @validator.should be_valid }
|
117
|
+
end
|
118
|
+
|
119
|
+
context "target value is 'some message'" do
|
120
|
+
before(:each) do
|
121
|
+
Anodator::Validator::Base.values = { "1" => "some message" }
|
122
|
+
end
|
123
|
+
|
124
|
+
it { @validator.should_not be_valid }
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
context "for postal code with not allow blank" do
|
129
|
+
before(:each) do
|
130
|
+
@validator = Anodator::Validator::FormatValidator.new("postal_code",
|
131
|
+
:format => /^\d{3}-\d{4}$/)
|
132
|
+
end
|
133
|
+
|
134
|
+
context "target value is valid" do
|
135
|
+
before(:each) do
|
136
|
+
Anodator::Validator::Base.values = { "postal_code" => "123-1234" }
|
137
|
+
end
|
138
|
+
|
139
|
+
it { @validator.should be_valid }
|
140
|
+
end
|
141
|
+
|
142
|
+
context "target value is blank" do
|
143
|
+
before(:each) do
|
144
|
+
Anodator::Validator::Base.values = { "postal_code" => "" }
|
145
|
+
end
|
146
|
+
|
147
|
+
it { @validator.should_not be_valid }
|
148
|
+
end
|
149
|
+
|
150
|
+
context "target value is invalid" do
|
151
|
+
before(:each) do
|
152
|
+
Anodator::Validator::Base.values = { "postal_code" => "1234567" }
|
153
|
+
end
|
154
|
+
|
155
|
+
it { @validator.should_not be_valid }
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
# Anodator::Validator::InclusionValidator
|
4
|
+
require "anodator/validator/inclusion_validator"
|
5
|
+
|
6
|
+
include Anodator::Validator
|
7
|
+
|
8
|
+
describe InclusionValidator, ".new" do
|
9
|
+
context "with no parameters" do
|
10
|
+
it "should raise ArgumentError" do
|
11
|
+
lambda {
|
12
|
+
InclusionValidator.new
|
13
|
+
}.should raise_error ArgumentError
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "with only target parameter" do
|
18
|
+
it "should not raise error" do
|
19
|
+
lambda {
|
20
|
+
InclusionValidator.new("1")
|
21
|
+
}.should_not raise_error
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "with target expression and :in paramerter" do
|
26
|
+
before(:each) do
|
27
|
+
@new_proc = lambda {
|
28
|
+
InclusionValidator.new("1", :in => ["A", "B", "C"])
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should not raise error" do
|
33
|
+
@new_proc.should_not raise_error
|
34
|
+
end
|
35
|
+
|
36
|
+
it ":in option must have parameter values" do
|
37
|
+
validator = @new_proc.call
|
38
|
+
validator.options[:in].should == ["A", "B", "C"]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe InclusionValidator, "#valid?" do
|
44
|
+
context "with only target parameter" do
|
45
|
+
before(:each) do
|
46
|
+
@validator = InclusionValidator.new("1")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should raise error" do
|
50
|
+
lambda {
|
51
|
+
@validator.valid?
|
52
|
+
}.should raise_error ConfigurationError
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context "with target expression and :in paramerter" do
|
57
|
+
before(:each) do
|
58
|
+
@validator = InclusionValidator.new("1", :in => ["A", "B", "C"])
|
59
|
+
end
|
60
|
+
|
61
|
+
context "values for valid" do
|
62
|
+
before(:each) do
|
63
|
+
Base.values = { "1" => "A" }
|
64
|
+
end
|
65
|
+
|
66
|
+
it { @validator.should be_valid }
|
67
|
+
end
|
68
|
+
|
69
|
+
context "values for invalid" do
|
70
|
+
before(:each) do
|
71
|
+
Base.values = { "1" => "D" }
|
72
|
+
end
|
73
|
+
|
74
|
+
it { @validator.should_not be_valid }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|