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,236 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
# Anodator::Validator::LengthValidator
|
4
|
+
require "anodator/validator/length_validator"
|
5
|
+
|
6
|
+
include Anodator::Validator
|
7
|
+
|
8
|
+
describe LengthValidator, ".new" do
|
9
|
+
context "with no paramerters" do
|
10
|
+
it "should raise error" do
|
11
|
+
lambda {
|
12
|
+
LengthValidator.new()
|
13
|
+
}.should raise_error
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "with only target expression" do
|
18
|
+
it "should not raise error" do
|
19
|
+
lambda {
|
20
|
+
LengthValidator.new("1")
|
21
|
+
}.should_not raise_error
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "with target expression and :maximum parameters" do
|
26
|
+
before(:each) do
|
27
|
+
@new_proc = lambda {
|
28
|
+
LengthValidator.new("1", :maximum => 10)
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should not raise error" do
|
33
|
+
@new_proc.should_not raise_error
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should have :maximum option value" do
|
37
|
+
validator = @new_proc.call
|
38
|
+
validator.options[:maximum].should == 10
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "with target expression and :minimum parameters" do
|
43
|
+
before(:each) do
|
44
|
+
@new_proc = lambda {
|
45
|
+
LengthValidator.new("1", :minimum => 10)
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should not raise error" do
|
50
|
+
@new_proc.should_not raise_error
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should have :minimum option value" do
|
54
|
+
validator = @new_proc.call
|
55
|
+
validator.options[:minimum].should == 10
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context "with target expression and :is parameters" do
|
60
|
+
before(:each) do
|
61
|
+
@new_proc = lambda {
|
62
|
+
LengthValidator.new("1", :is => 10)
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should not raise error" do
|
67
|
+
@new_proc.should_not raise_error
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should have :is option value" do
|
71
|
+
validator = @new_proc.call
|
72
|
+
validator.options[:is].should == 10
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context "with target expression and :in parameters" do
|
77
|
+
before(:each) do
|
78
|
+
@new_proc = lambda {
|
79
|
+
LengthValidator.new("1", :in => 3..6)
|
80
|
+
}
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should not raise error" do
|
84
|
+
@new_proc.should_not raise_error
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should have :in option value" do
|
88
|
+
validator = @new_proc.call
|
89
|
+
validator.options[:in].should == (3..6)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe LengthValidator, "#valid?" do
|
95
|
+
context "with only target expression" do
|
96
|
+
before(:each) do
|
97
|
+
@validator = LengthValidator.new("1")
|
98
|
+
Base.values = {
|
99
|
+
"1" => "string",
|
100
|
+
"2" => "string",
|
101
|
+
"3" => "string",
|
102
|
+
"4" => "string",
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should not raise error" do
|
107
|
+
lambda {
|
108
|
+
@validator.valid?
|
109
|
+
}.should_not raise_error
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "with target expression and :maximum parameters" do
|
114
|
+
before(:each) do
|
115
|
+
@validator = LengthValidator.new("1", :maximum => 10)
|
116
|
+
end
|
117
|
+
|
118
|
+
context "values for valid" do
|
119
|
+
before(:each) do
|
120
|
+
Base.values = {
|
121
|
+
"1" => "1234567890"
|
122
|
+
}
|
123
|
+
end
|
124
|
+
|
125
|
+
it { @validator.should be_valid }
|
126
|
+
end
|
127
|
+
|
128
|
+
context "values for invalid" do
|
129
|
+
before(:each) do
|
130
|
+
Base.values = {
|
131
|
+
"1" => "12345678901"
|
132
|
+
}
|
133
|
+
end
|
134
|
+
|
135
|
+
it { @validator.should_not be_valid }
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
context "with target expression and :minimum parameters" do
|
140
|
+
before(:each) do
|
141
|
+
@validator = LengthValidator.new("1", :minimum => 10)
|
142
|
+
end
|
143
|
+
|
144
|
+
context "values for valid" do
|
145
|
+
before(:each) do
|
146
|
+
Base.values = {
|
147
|
+
"1" => "1234567890"
|
148
|
+
}
|
149
|
+
end
|
150
|
+
|
151
|
+
it { @validator.should be_valid }
|
152
|
+
end
|
153
|
+
|
154
|
+
context "values for invalid" do
|
155
|
+
before(:each) do
|
156
|
+
Base.values = {
|
157
|
+
"1" => "123456789"
|
158
|
+
}
|
159
|
+
end
|
160
|
+
|
161
|
+
it { @validator.should_not be_valid }
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
context "with target expression and :is parameters" do
|
166
|
+
before(:each) do
|
167
|
+
@validator = LengthValidator.new("1", :is => 10)
|
168
|
+
end
|
169
|
+
|
170
|
+
context "values for valid" do
|
171
|
+
before(:each) do
|
172
|
+
Base.values = {
|
173
|
+
"1" => "1234567890"
|
174
|
+
}
|
175
|
+
end
|
176
|
+
|
177
|
+
it { @validator.should be_valid }
|
178
|
+
end
|
179
|
+
|
180
|
+
context "values for invalid" do
|
181
|
+
before(:each) do
|
182
|
+
Base.values = {
|
183
|
+
"1" => "123456789"
|
184
|
+
}
|
185
|
+
end
|
186
|
+
|
187
|
+
it { @validator.should_not be_valid }
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
context "with target expression and :in parameters" do
|
192
|
+
before(:each) do
|
193
|
+
@validator = LengthValidator.new("1", :in => 3..6)
|
194
|
+
end
|
195
|
+
|
196
|
+
context "values for minimum equal valid" do
|
197
|
+
before(:each) do
|
198
|
+
Base.values = {
|
199
|
+
"1" => "123"
|
200
|
+
}
|
201
|
+
end
|
202
|
+
|
203
|
+
it { @validator.should be_valid }
|
204
|
+
end
|
205
|
+
|
206
|
+
context "values for minimum invalid" do
|
207
|
+
before(:each) do
|
208
|
+
Base.values = {
|
209
|
+
"1" => "12"
|
210
|
+
}
|
211
|
+
end
|
212
|
+
|
213
|
+
it { @validator.should_not be_valid }
|
214
|
+
end
|
215
|
+
|
216
|
+
context "values for maximum equal valid" do
|
217
|
+
before(:each) do
|
218
|
+
Base.values = {
|
219
|
+
"1" => "123456"
|
220
|
+
}
|
221
|
+
end
|
222
|
+
|
223
|
+
it { @validator.should be_valid }
|
224
|
+
end
|
225
|
+
|
226
|
+
context "values for maximum invalid" do
|
227
|
+
before(:each) do
|
228
|
+
Base.values = {
|
229
|
+
"1" => "1234567"
|
230
|
+
}
|
231
|
+
end
|
232
|
+
|
233
|
+
it { @validator.should_not be_valid }
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
@@ -0,0 +1,468 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
# Anodator::Validator::NumericValidator
|
4
|
+
require "anodator/validator/numeric_validator"
|
5
|
+
|
6
|
+
include Anodator::Validator
|
7
|
+
|
8
|
+
describe NumericValidator, ".new" do
|
9
|
+
context "with no parameters" do
|
10
|
+
it "should raise ArgumentError" do
|
11
|
+
lambda {
|
12
|
+
NumericValidator.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
|
+
NumericValidator.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 ":only_integer option must be false by default option" do
|
29
|
+
@new_proc.call.options[:only_integer].should == false
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "with target expression and :only_integer" do
|
34
|
+
before(:each) do
|
35
|
+
@new_proc = lambda {
|
36
|
+
NumericValidator.new("1", :only_integer => true)
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should not raise error" do
|
41
|
+
@new_proc.should_not raise_error
|
42
|
+
end
|
43
|
+
|
44
|
+
it ":only_integer option must be exists" do
|
45
|
+
@new_proc.call.options[:only_integer].should == true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "with target expression and :greater_than" do
|
50
|
+
before(:each) do
|
51
|
+
@new_proc = lambda {
|
52
|
+
NumericValidator.new("1", :greater_than => 10)
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should not raise error" do
|
57
|
+
@new_proc.should_not raise_error
|
58
|
+
end
|
59
|
+
|
60
|
+
it ":greater_than option must be exists" do
|
61
|
+
@new_proc.call.options[:greater_than].should == 10
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "with target expression and :greater_than_or_equal_to" do
|
66
|
+
before(:each) do
|
67
|
+
@new_proc = lambda {
|
68
|
+
NumericValidator.new("1", :greater_than_or_equal_to => 10)
|
69
|
+
}
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should not raise error" do
|
73
|
+
@new_proc.should_not raise_error
|
74
|
+
end
|
75
|
+
|
76
|
+
it ":greater_than_or_equal_to option must be exists" do
|
77
|
+
@new_proc.call.options[:greater_than_or_equal_to].should == 10
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "with target expression and :less_than" do
|
82
|
+
before(:each) do
|
83
|
+
@new_proc = lambda {
|
84
|
+
NumericValidator.new("1", :less_than => 10)
|
85
|
+
}
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should not raise error" do
|
89
|
+
@new_proc.should_not raise_error
|
90
|
+
end
|
91
|
+
|
92
|
+
it ":less_than option must be exists" do
|
93
|
+
@new_proc.call.options[:less_than].should == 10
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context "with target expression and :less_than_or_equal_to" do
|
98
|
+
before(:each) do
|
99
|
+
@new_proc = lambda {
|
100
|
+
NumericValidator.new("1", :less_than_or_equal_to => 10)
|
101
|
+
}
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should not raise error" do
|
105
|
+
@new_proc.should_not raise_error
|
106
|
+
end
|
107
|
+
|
108
|
+
it ":less_than_or_equal_to option must be exists" do
|
109
|
+
@new_proc.call.options[:less_than_or_equal_to].should == 10
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "with target expression and :equal_to" do
|
114
|
+
before(:each) do
|
115
|
+
@new_proc = lambda {
|
116
|
+
NumericValidator.new("1", :equal_to => 10)
|
117
|
+
}
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should not raise error" do
|
121
|
+
@new_proc.should_not raise_error
|
122
|
+
end
|
123
|
+
|
124
|
+
it ":equal_to option must be exists" do
|
125
|
+
@new_proc.call.options[:equal_to].should == 10
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe NumericValidator, "#valid?" do
|
131
|
+
context "with only target expression" do
|
132
|
+
before(:each) do
|
133
|
+
@validator = NumericValidator.new("1")
|
134
|
+
end
|
135
|
+
|
136
|
+
context "values for valid integer" do
|
137
|
+
before(:each) do
|
138
|
+
Base.values = { "1" => "132" }
|
139
|
+
end
|
140
|
+
|
141
|
+
it { @validator.should be_valid }
|
142
|
+
end
|
143
|
+
|
144
|
+
context "values for valid floating point value" do
|
145
|
+
before(:each) do
|
146
|
+
Base.values = { "1" => "132.42" }
|
147
|
+
end
|
148
|
+
|
149
|
+
it { @validator.should be_valid }
|
150
|
+
end
|
151
|
+
|
152
|
+
context "values for invalid character" do
|
153
|
+
before(:each) do
|
154
|
+
Base.values = { "1" => "abdcd" }
|
155
|
+
end
|
156
|
+
|
157
|
+
it { @validator.should_not be_valid }
|
158
|
+
end
|
159
|
+
|
160
|
+
context "values for invalid number include alphabet" do
|
161
|
+
before(:each) do
|
162
|
+
Base.values = { "1" => "124.43fsd" }
|
163
|
+
end
|
164
|
+
|
165
|
+
it { @validator.should_not be_valid }
|
166
|
+
end
|
167
|
+
|
168
|
+
context "values for valid negative integer" do
|
169
|
+
before(:each) do
|
170
|
+
Base.values = { "1" => "-312" }
|
171
|
+
end
|
172
|
+
|
173
|
+
it { @validator.should be_valid }
|
174
|
+
end
|
175
|
+
|
176
|
+
context "values for valid negative floating point value" do
|
177
|
+
before(:each) do
|
178
|
+
Base.values = { "1" => "-13.442" }
|
179
|
+
end
|
180
|
+
|
181
|
+
it { @validator.should be_valid }
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
context "with target expression and :only_integer" do
|
186
|
+
before(:each) do
|
187
|
+
@validator = NumericValidator.new("1", :only_integer => true)
|
188
|
+
end
|
189
|
+
|
190
|
+
context "values for valid integer" do
|
191
|
+
before(:each) do
|
192
|
+
Base.values = { "1" => "3252" }
|
193
|
+
end
|
194
|
+
|
195
|
+
it { @validator.should be_valid }
|
196
|
+
end
|
197
|
+
|
198
|
+
context "values for invalid floating point vlaue" do
|
199
|
+
before(:each) do
|
200
|
+
Base.values = { "1" => "42.43" }
|
201
|
+
end
|
202
|
+
|
203
|
+
it { @validator.should_not be_valid }
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
context "with target expression and :greater_than" do
|
208
|
+
before(:each) do
|
209
|
+
@validator = NumericValidator.new("1", :greater_than => 10)
|
210
|
+
end
|
211
|
+
|
212
|
+
context "values for valid minimum value" do
|
213
|
+
before(:each) do
|
214
|
+
Base.values = { "1" => "11" }
|
215
|
+
end
|
216
|
+
|
217
|
+
it { @validator.should be_valid }
|
218
|
+
end
|
219
|
+
|
220
|
+
context "values for valid floating point value" do
|
221
|
+
before(:each) do
|
222
|
+
Base.values = { "1" => "10.00001" }
|
223
|
+
end
|
224
|
+
|
225
|
+
it { @validator.should be_valid }
|
226
|
+
end
|
227
|
+
|
228
|
+
context "values for invalid equal value" do
|
229
|
+
before(:each) do
|
230
|
+
Base.values = { "1" => "10" }
|
231
|
+
end
|
232
|
+
|
233
|
+
it { @validator.should_not be_valid }
|
234
|
+
end
|
235
|
+
|
236
|
+
context "values for invalid maximum value" do
|
237
|
+
before(:each) do
|
238
|
+
Base.values = { "1" => "9" }
|
239
|
+
end
|
240
|
+
|
241
|
+
it { @validator.should_not be_valid }
|
242
|
+
end
|
243
|
+
|
244
|
+
context "values for invalid maximum floating potin value" do
|
245
|
+
before(:each) do
|
246
|
+
Base.values = { "1" => "9.999999" }
|
247
|
+
end
|
248
|
+
|
249
|
+
it { @validator.should_not be_valid }
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
context "with target expression and :greater_than_or_equal_to" do
|
254
|
+
before(:each) do
|
255
|
+
@validator = NumericValidator.new("1", :greater_than_or_equal_to => 10)
|
256
|
+
end
|
257
|
+
|
258
|
+
context "values for valid minimum value" do
|
259
|
+
before(:each) do
|
260
|
+
Base.values = { "1" => "11" }
|
261
|
+
end
|
262
|
+
|
263
|
+
it { @validator.should be_valid }
|
264
|
+
end
|
265
|
+
|
266
|
+
context "values for valid floating point value" do
|
267
|
+
before(:each) do
|
268
|
+
Base.values = { "1" => "10.0001" }
|
269
|
+
end
|
270
|
+
|
271
|
+
it { @validator.should be_valid }
|
272
|
+
end
|
273
|
+
|
274
|
+
context "values for valid equal value" do
|
275
|
+
before(:each) do
|
276
|
+
Base.values = { "1" => "10" }
|
277
|
+
end
|
278
|
+
|
279
|
+
it { @validator.should be_valid }
|
280
|
+
end
|
281
|
+
|
282
|
+
context "values for valid equal floating point value" do
|
283
|
+
before(:each) do
|
284
|
+
Base.values = { "1" => "10.0" }
|
285
|
+
end
|
286
|
+
|
287
|
+
it { @validator.should be_valid }
|
288
|
+
end
|
289
|
+
|
290
|
+
context "values for invalid maximum value" do
|
291
|
+
before(:each) do
|
292
|
+
Base.values = { "1" => "9" }
|
293
|
+
end
|
294
|
+
|
295
|
+
it { @validator.should_not be_valid }
|
296
|
+
end
|
297
|
+
|
298
|
+
context "values for invalid maximum floating potin value" do
|
299
|
+
before(:each) do
|
300
|
+
Base.values = { "1" => "9.999999" }
|
301
|
+
end
|
302
|
+
|
303
|
+
it { @validator.should_not be_valid }
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
context "with target expression and :less_than" do
|
308
|
+
before(:each) do
|
309
|
+
@validator = NumericValidator.new("1", :less_than => 10)
|
310
|
+
end
|
311
|
+
|
312
|
+
context "values for valid maximum value" do
|
313
|
+
before(:each) do
|
314
|
+
Base.values = { "1" => "9" }
|
315
|
+
end
|
316
|
+
|
317
|
+
it { @validator.should be_valid }
|
318
|
+
end
|
319
|
+
|
320
|
+
context "values for valid maximum floating point value" do
|
321
|
+
before(:each) do
|
322
|
+
Base.values = { "1" => "9.9999999" }
|
323
|
+
end
|
324
|
+
|
325
|
+
it { @validator.should be_valid }
|
326
|
+
end
|
327
|
+
|
328
|
+
context "values for invalid equal value" do
|
329
|
+
before(:each) do
|
330
|
+
Base.values = { "1" => "10" }
|
331
|
+
end
|
332
|
+
|
333
|
+
it { @validator.should_not be_valid }
|
334
|
+
end
|
335
|
+
|
336
|
+
context "values for invalid equal floating point value" do
|
337
|
+
before(:each) do
|
338
|
+
Base.values = { "1" => "10.0" }
|
339
|
+
end
|
340
|
+
|
341
|
+
it { @validator.should_not be_valid }
|
342
|
+
end
|
343
|
+
|
344
|
+
context "values for invalid minimum value" do
|
345
|
+
before(:each) do
|
346
|
+
Base.values = { "1" => "11" }
|
347
|
+
end
|
348
|
+
|
349
|
+
it { @validator.should_not be_valid }
|
350
|
+
end
|
351
|
+
|
352
|
+
context "values for invalid minimum floating potin value" do
|
353
|
+
before(:each) do
|
354
|
+
Base.values = { "1" => "10.0000001" }
|
355
|
+
end
|
356
|
+
|
357
|
+
it { @validator.should_not be_valid }
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
context "with target expression and :less_than_or_equal_to" do
|
362
|
+
before(:each) do
|
363
|
+
@validator = NumericValidator.new("1", :less_than_or_equal_to => 10)
|
364
|
+
end
|
365
|
+
|
366
|
+
context "values for valid maximum value" do
|
367
|
+
before(:each) do
|
368
|
+
Base.values = { "1" => "9" }
|
369
|
+
end
|
370
|
+
|
371
|
+
it { @validator.should be_valid }
|
372
|
+
end
|
373
|
+
|
374
|
+
context "values for valid maximum floating point value" do
|
375
|
+
before(:each) do
|
376
|
+
Base.values = { "1" => "9.9999999" }
|
377
|
+
end
|
378
|
+
|
379
|
+
it { @validator.should be_valid }
|
380
|
+
end
|
381
|
+
|
382
|
+
context "values for valid equal value" do
|
383
|
+
before(:each) do
|
384
|
+
Base.values = { "1" => "10" }
|
385
|
+
end
|
386
|
+
|
387
|
+
it { @validator.should be_valid }
|
388
|
+
end
|
389
|
+
|
390
|
+
context "values for valid equal floating point value" do
|
391
|
+
before(:each) do
|
392
|
+
Base.values = { "1" => "10.0" }
|
393
|
+
end
|
394
|
+
|
395
|
+
it { @validator.should be_valid }
|
396
|
+
end
|
397
|
+
|
398
|
+
context "values for invalid minimum value" do
|
399
|
+
before(:each) do
|
400
|
+
Base.values = { "1" => "11" }
|
401
|
+
end
|
402
|
+
|
403
|
+
it { @validator.should_not be_valid }
|
404
|
+
end
|
405
|
+
|
406
|
+
context "values for invalid minimum floating potin value" do
|
407
|
+
before(:each) do
|
408
|
+
Base.values = { "1" => "10.0000001" }
|
409
|
+
end
|
410
|
+
|
411
|
+
it { @validator.should_not be_valid }
|
412
|
+
end
|
413
|
+
end
|
414
|
+
|
415
|
+
context "with target expression and :equal_to" do
|
416
|
+
before(:each) do
|
417
|
+
@validator = NumericValidator.new("1", :equal_to => 10)
|
418
|
+
end
|
419
|
+
|
420
|
+
context "values for invalid maximum value" do
|
421
|
+
before(:each) do
|
422
|
+
Base.values = { "1" => "9" }
|
423
|
+
end
|
424
|
+
|
425
|
+
it { @validator.should_not be_valid }
|
426
|
+
end
|
427
|
+
|
428
|
+
context "values for invalid maximum floating point value" do
|
429
|
+
before(:each) do
|
430
|
+
Base.values = { "1" => "9.9999999" }
|
431
|
+
end
|
432
|
+
|
433
|
+
it { @validator.should_not be_valid }
|
434
|
+
end
|
435
|
+
|
436
|
+
context "values for valid equal value" do
|
437
|
+
before(:each) do
|
438
|
+
Base.values = { "1" => "10" }
|
439
|
+
end
|
440
|
+
|
441
|
+
it { @validator.should be_valid }
|
442
|
+
end
|
443
|
+
|
444
|
+
context "values for valid equal floating point value" do
|
445
|
+
before(:each) do
|
446
|
+
Base.values = { "1" => "10.0" }
|
447
|
+
end
|
448
|
+
|
449
|
+
it { @validator.should be_valid }
|
450
|
+
end
|
451
|
+
|
452
|
+
context "values for invalid minimum value" do
|
453
|
+
before(:each) do
|
454
|
+
Base.values = { "1" => "11" }
|
455
|
+
end
|
456
|
+
|
457
|
+
it { @validator.should_not be_valid }
|
458
|
+
end
|
459
|
+
|
460
|
+
context "values for invalid minimum floating potin value" do
|
461
|
+
before(:each) do
|
462
|
+
Base.values = { "1" => "10.0000001" }
|
463
|
+
end
|
464
|
+
|
465
|
+
it { @validator.should_not be_valid }
|
466
|
+
end
|
467
|
+
end
|
468
|
+
end
|