anodator 0.0.5 → 1.0.0.pre1
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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +5 -13
- data/LICENSE.txt +18 -17
- data/{README.ja.rdoc → README.ja.md} +2 -4
- data/README.md +39 -0
- data/Rakefile +3 -47
- data/anodator.gemspec +21 -103
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/anodator/check_result.rb +1 -1
- data/lib/anodator/input_spec.rb +2 -2
- data/lib/anodator/rule.rb +2 -2
- data/lib/anodator/utils.rb +4 -4
- data/lib/anodator/validator/format_validator.rb +1 -1
- data/lib/anodator/version.rb +3 -0
- data/lib/anodator.rb +1 -2
- metadata +70 -131
- data/Gemfile.lock +0 -29
- data/README.rdoc +0 -41
- data/spec/anodator/check_result_spec.rb +0 -101
- data/spec/anodator/checker_spec.rb +0 -273
- data/spec/anodator/input_spec_item_spec.rb +0 -100
- data/spec/anodator/input_spec_spec.rb +0 -584
- data/spec/anodator/message_spec.rb +0 -112
- data/spec/anodator/output_spec_spec.rb +0 -355
- data/spec/anodator/rule_set_spec.rb +0 -190
- data/spec/anodator/rule_spec.rb +0 -278
- data/spec/anodator/utils_spec.rb +0 -48
- data/spec/anodator/validator/base_spec.rb +0 -214
- data/spec/anodator/validator/blank_validator_spec.rb +0 -52
- data/spec/anodator/validator/complex_validator_spec.rb +0 -268
- data/spec/anodator/validator/date_validator_spec.rb +0 -350
- data/spec/anodator/validator/format_validator_spec.rb +0 -158
- data/spec/anodator/validator/inclusion_validator_spec.rb +0 -77
- data/spec/anodator/validator/length_validator_spec.rb +0 -236
- data/spec/anodator/validator/numeric_validator_spec.rb +0 -538
- data/spec/anodator/validator/presence_validator_spec.rb +0 -52
- data/spec/anodator/validator_spec.rb +0 -16
- data/spec/anodator_spec.rb +0 -2
- data/spec/spec_helper.rb +0 -12
@@ -1,100 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
# Anodator::InputSpecItem
|
4
|
-
require "anodator/input_spec_item"
|
5
|
-
|
6
|
-
include Anodator
|
7
|
-
|
8
|
-
describe InputSpecItem, ".new" do
|
9
|
-
context "with no parameter" do
|
10
|
-
it "should raise error ArgumentError" do
|
11
|
-
lambda {
|
12
|
-
InputSpecItem.new
|
13
|
-
}.should raise_error ArgumentError
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context "with only number parameter" do
|
18
|
-
it "should raise ArgumentError" do
|
19
|
-
lambda {
|
20
|
-
InputSpecItem.new("1")
|
21
|
-
}.should raise_error ArgumentError
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context "with blank number parameter" do
|
26
|
-
it "should raise ArgumentError" do
|
27
|
-
lambda {
|
28
|
-
InputSpecItem.new("", "item_1")
|
29
|
-
}.should raise_error ArgumentError
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context "with nil number parameter" do
|
34
|
-
it "should raise ArgumentError" do
|
35
|
-
lambda {
|
36
|
-
InputSpecItem.new(nil, "item_1")
|
37
|
-
}.should raise_error ArgumentError
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context "with blank name parameter" do
|
42
|
-
it "should raise ArgumentError" do
|
43
|
-
lambda {
|
44
|
-
InputSpecItem.new("1", "")
|
45
|
-
}.should raise_error ArgumentError
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context "with nil name parameter" do
|
50
|
-
it "should raise ArgumentError" do
|
51
|
-
lambda {
|
52
|
-
InputSpecItem.new("1", nil)
|
53
|
-
}.should raise_error ArgumentError
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context "with number and name parameter" do
|
58
|
-
before(:all) do
|
59
|
-
@new_proc = lambda {
|
60
|
-
InputSpecItem.new("1", "item_1")
|
61
|
-
}
|
62
|
-
end
|
63
|
-
|
64
|
-
it "should not raise error" do
|
65
|
-
@new_proc.should_not raise_error
|
66
|
-
end
|
67
|
-
|
68
|
-
context "after generated" do
|
69
|
-
before(:all) do
|
70
|
-
@input_spec_item = @new_proc.call
|
71
|
-
end
|
72
|
-
|
73
|
-
it { @input_spec_item.number.should == "1" }
|
74
|
-
it { @input_spec_item.name.should == "item_1" }
|
75
|
-
it { @input_spec_item.type.should == "STRING" }
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
context "with number, name and type(NUMERIC) parameter" do
|
80
|
-
before(:all) do
|
81
|
-
@new_proc = lambda {
|
82
|
-
InputSpecItem.new("1", "item_1", "NUMERIC")
|
83
|
-
}
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should not raise error" do
|
87
|
-
@new_proc.should_not raise_error
|
88
|
-
end
|
89
|
-
|
90
|
-
context "after generated" do
|
91
|
-
before(:all) do
|
92
|
-
@input_spec_item = @new_proc.call
|
93
|
-
end
|
94
|
-
|
95
|
-
it { @input_spec_item.number.should == "1" }
|
96
|
-
it { @input_spec_item.name.should == "item_1" }
|
97
|
-
it { @input_spec_item.type.should == "NUMERIC" }
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
@@ -1,584 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
# Anodator::InputSpec
|
4
|
-
require "anodator/input_spec"
|
5
|
-
|
6
|
-
include Anodator
|
7
|
-
|
8
|
-
describe InputSpec, ".new" do
|
9
|
-
context "with no parameters" do
|
10
|
-
it "should not raise error" do
|
11
|
-
lambda {
|
12
|
-
InputSpec.new
|
13
|
-
}.should_not raise_error
|
14
|
-
end
|
15
|
-
|
16
|
-
it "@spec_items.count should be zero" do
|
17
|
-
input_spec = InputSpec.new
|
18
|
-
input_spec.instance_eval("@spec_items.count").should be_zero
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context "with several items parameter" do
|
23
|
-
before(:all) do
|
24
|
-
@new_proc = lambda {
|
25
|
-
InputSpec.new([
|
26
|
-
{ :number => "1", :name => "item_1" },
|
27
|
-
{ :number => "2", :name => "item_2" },
|
28
|
-
{ :number => "3", :name => "item_3" },
|
29
|
-
{ :number => "4", :name => "item_4" },
|
30
|
-
{ :number => "5", :name => "item_5", :type => InputSpecItem::TYPE_NUMERIC },
|
31
|
-
{ :number => "6", :name => "item_6" },
|
32
|
-
{ :number => "7", :name => "item_7" },
|
33
|
-
{ :number => "8", :name => "item_8" },
|
34
|
-
{ :number => "9", :name => "item_9" },
|
35
|
-
])
|
36
|
-
}
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should not raise error" do
|
40
|
-
@new_proc.should_not raise_error
|
41
|
-
end
|
42
|
-
|
43
|
-
it "@spec_items.count should be 9" do
|
44
|
-
input_spec = @new_proc.call
|
45
|
-
input_spec.instance_eval("@spec_items.count").should == 9
|
46
|
-
end
|
47
|
-
|
48
|
-
it "@spec_items.each type.should be STRING" do
|
49
|
-
input_spec = @new_proc.call
|
50
|
-
input_spec.instance_eval("@spec_items").each do |input_spec_item|
|
51
|
-
if input_spec_item.number == "5"
|
52
|
-
input_spec_item.type.should == InputSpecItem::TYPE_NUMERIC
|
53
|
-
else
|
54
|
-
input_spec_item.type.should == InputSpecItem::TYPE_STRING
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe InputSpec, "after generated" do
|
62
|
-
before(:each) do
|
63
|
-
@input_spec = InputSpec.new([
|
64
|
-
{ :number => "1", :name => "item_1" },
|
65
|
-
{ :number => "2", :name => "item_2" },
|
66
|
-
{ :number => "3", :name => "item_3" },
|
67
|
-
{ :number => "4", :name => "item_4" },
|
68
|
-
{ :number => "5", :name => "item_5", :type => InputSpecItem::TYPE_NUMERIC },
|
69
|
-
{ :number => "6", :name => "item_6", :type => InputSpecItem::TYPE_NUMERIC },
|
70
|
-
{ :number => "7", :name => "item_7" },
|
71
|
-
{ :number => "8", :name => "item_8" },
|
72
|
-
{ :number => "9", :name => "item_9" },
|
73
|
-
])
|
74
|
-
end
|
75
|
-
|
76
|
-
describe "#source=" do
|
77
|
-
context "with valid array values" do
|
78
|
-
before(:each) do
|
79
|
-
@values = %W(1 2 3 4 5 6 7 8 9)
|
80
|
-
@proc = lambda {
|
81
|
-
@input_spec.source = @values
|
82
|
-
}
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should not raise error" do
|
86
|
-
@proc.should_not raise_error
|
87
|
-
end
|
88
|
-
|
89
|
-
it "@source should equal presented values" do
|
90
|
-
@proc.should change { @input_spec.instance_eval("@source") }.
|
91
|
-
from(nil).to(@values)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
context "with invalid fixnum value" do
|
96
|
-
it "should raise ArgumentError" do
|
97
|
-
lambda {
|
98
|
-
@input_spec.source = nil
|
99
|
-
}.should raise_error ArgumentError
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
describe "#clear_source" do
|
105
|
-
before(:each) do
|
106
|
-
@values = %W(1 2 3 4 5 6 7 8 9)
|
107
|
-
@input_spec.source = @values
|
108
|
-
@proc = lambda {
|
109
|
-
@input_spec.clear_source
|
110
|
-
}
|
111
|
-
end
|
112
|
-
|
113
|
-
it "@source should change to nil" do
|
114
|
-
@proc.should change { @input_spec.instance_eval("@source") }.
|
115
|
-
from(@values).to(nil)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
describe "#[]" do
|
120
|
-
context "when initialized source" do
|
121
|
-
before(:each) do
|
122
|
-
@values = %W(1 2 3 4 5 6 7 8 9)
|
123
|
-
@input_spec.source = @values
|
124
|
-
end
|
125
|
-
|
126
|
-
context "when access existing index" do
|
127
|
-
before(:each) do
|
128
|
-
@proc = lambda {
|
129
|
-
@input_spec[3]
|
130
|
-
}
|
131
|
-
end
|
132
|
-
|
133
|
-
it "should get value" do
|
134
|
-
@proc.call.should == @values[3]
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
context "when access non-existing index" do
|
139
|
-
before(:each) do
|
140
|
-
@proc = lambda {
|
141
|
-
@input_spec[@values.size]
|
142
|
-
}
|
143
|
-
end
|
144
|
-
|
145
|
-
it "should raise error UnknownTargetExpressionError" do
|
146
|
-
@proc.should raise_error UnknownTargetExpressionError
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
context "when access existing number" do
|
151
|
-
before(:each) do
|
152
|
-
@proc = lambda {
|
153
|
-
@input_spec["7"]
|
154
|
-
}
|
155
|
-
end
|
156
|
-
|
157
|
-
it "should get value" do
|
158
|
-
@proc.call.should == @values[6]
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
context "when access non-existing number" do
|
163
|
-
before(:each) do
|
164
|
-
@proc = lambda {
|
165
|
-
@input_spec[(@values.size + 1).to_s]
|
166
|
-
}
|
167
|
-
end
|
168
|
-
|
169
|
-
it "should raise error UnknownTargetExpressionError" do
|
170
|
-
@proc.should raise_error UnknownTargetExpressionError
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
context "when access existing name" do
|
175
|
-
before(:each) do
|
176
|
-
@proc = lambda {
|
177
|
-
@input_spec["item_2"]
|
178
|
-
}
|
179
|
-
end
|
180
|
-
|
181
|
-
it "should get value" do
|
182
|
-
@proc.call.should == @values[1]
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
|
-
context "when access non-existing name" do
|
187
|
-
before(:each) do
|
188
|
-
@proc = lambda {
|
189
|
-
@input_spec["unknown"]
|
190
|
-
}
|
191
|
-
end
|
192
|
-
|
193
|
-
it "should raise error UnknownTargetExpressionError" do
|
194
|
-
@proc.should raise_error UnknownTargetExpressionError
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
context "when access valid calculation expression" do
|
199
|
-
before(:each) do
|
200
|
-
@proc = lambda {
|
201
|
-
@input_spec["CALC::[[1]]+[[2]]"]
|
202
|
-
}
|
203
|
-
end
|
204
|
-
|
205
|
-
it "should not raise error" do
|
206
|
-
@proc.should_not raise_error
|
207
|
-
end
|
208
|
-
|
209
|
-
it { @proc.call.should == "12" }
|
210
|
-
end
|
211
|
-
|
212
|
-
context "when access invalid calculation expression with unknown number" do
|
213
|
-
before(:each) do
|
214
|
-
@proc = lambda {
|
215
|
-
@input_spec["CALC::[[1]]+[[12]]"]
|
216
|
-
}
|
217
|
-
end
|
218
|
-
|
219
|
-
it "should raise UnknownTargetExpressionError" do
|
220
|
-
@proc.should raise_error UnknownTargetExpressionError
|
221
|
-
end
|
222
|
-
end
|
223
|
-
|
224
|
-
context "when access invalid calculation expression with syntax error" do
|
225
|
-
before(:each) do
|
226
|
-
@proc = lambda {
|
227
|
-
@input_spec["CALC::[[1]][[2]]"]
|
228
|
-
}
|
229
|
-
end
|
230
|
-
|
231
|
-
it "should raise UnknownTargetExpressionError" do
|
232
|
-
@proc.should_not raise_error UnknownTargetExpressionError
|
233
|
-
end
|
234
|
-
end
|
235
|
-
|
236
|
-
context "when access valid calculation expression for numeric add" do
|
237
|
-
before(:each) do
|
238
|
-
@proc = lambda {
|
239
|
-
@input_spec["CALC::[[5]]+[[6]]"]
|
240
|
-
}
|
241
|
-
end
|
242
|
-
|
243
|
-
it "should not raise error" do
|
244
|
-
@proc.should_not raise_error
|
245
|
-
end
|
246
|
-
|
247
|
-
it { @proc.call.should == "11.0" }
|
248
|
-
end
|
249
|
-
|
250
|
-
context "when access invalid calculation expression for numeric and string add" do
|
251
|
-
before(:each) do
|
252
|
-
@proc = lambda {
|
253
|
-
@input_spec["CALC::[[1]]+[[6]]"]
|
254
|
-
}
|
255
|
-
end
|
256
|
-
|
257
|
-
it "should raise UnknownTargetExpressionError" do
|
258
|
-
@proc.should raise_error UnknownTargetExpressionError
|
259
|
-
end
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
context "when not initialized source" do
|
264
|
-
it "should raise error" do
|
265
|
-
lambda {
|
266
|
-
@input_spec[0]
|
267
|
-
}.should raise_error SourceDataNotProvidedError
|
268
|
-
end
|
269
|
-
end
|
270
|
-
end
|
271
|
-
|
272
|
-
describe "#value_at" do
|
273
|
-
context "when initialized source" do
|
274
|
-
before(:each) do
|
275
|
-
@values = %W(1 2 3 4 5 6 7 8 9)
|
276
|
-
@input_spec.source = @values
|
277
|
-
end
|
278
|
-
|
279
|
-
context "when access existing index" do
|
280
|
-
before(:each) do
|
281
|
-
@proc = lambda {
|
282
|
-
@input_spec.value_at(3)
|
283
|
-
}
|
284
|
-
end
|
285
|
-
|
286
|
-
it "should get value" do
|
287
|
-
@proc.call.should == @values[3]
|
288
|
-
end
|
289
|
-
end
|
290
|
-
|
291
|
-
context "when access non-existing index" do
|
292
|
-
before(:each) do
|
293
|
-
@proc = lambda {
|
294
|
-
@input_spec.value_at(@values.size)
|
295
|
-
}
|
296
|
-
end
|
297
|
-
|
298
|
-
it "should raise error UnknownTargetExpressionError" do
|
299
|
-
@proc.should raise_error UnknownTargetExpressionError
|
300
|
-
end
|
301
|
-
end
|
302
|
-
end
|
303
|
-
|
304
|
-
context "when not initialized source" do
|
305
|
-
it "should raise error" do
|
306
|
-
lambda {
|
307
|
-
@input_spec.value_at(0)
|
308
|
-
}.should raise_error SourceDataNotProvidedError
|
309
|
-
end
|
310
|
-
end
|
311
|
-
end
|
312
|
-
|
313
|
-
describe "#value_at_by_number" do
|
314
|
-
context "when initialized source" do
|
315
|
-
before(:each) do
|
316
|
-
@values = %W(1 2 3 4 5 6 7 8 9)
|
317
|
-
@input_spec.source = @values
|
318
|
-
end
|
319
|
-
|
320
|
-
context "when access existing number" do
|
321
|
-
before(:each) do
|
322
|
-
@proc = lambda {
|
323
|
-
@input_spec.value_at_by_number("7")
|
324
|
-
}
|
325
|
-
end
|
326
|
-
|
327
|
-
it "should get value" do
|
328
|
-
@proc.call.should == @values[6]
|
329
|
-
end
|
330
|
-
end
|
331
|
-
|
332
|
-
context "when access non-existing number" do
|
333
|
-
before(:each) do
|
334
|
-
@proc = lambda {
|
335
|
-
@input_spec.value_at_by_number((@values.size + 1).to_s)
|
336
|
-
}
|
337
|
-
end
|
338
|
-
|
339
|
-
it "should raise error UnknownTargetExpressionError" do
|
340
|
-
@proc.should raise_error UnknownTargetExpressionError
|
341
|
-
end
|
342
|
-
end
|
343
|
-
end
|
344
|
-
|
345
|
-
context "when not initialized source" do
|
346
|
-
it "should raise error" do
|
347
|
-
lambda {
|
348
|
-
@input_spec.value_at_by_number("0")
|
349
|
-
}.should raise_error SourceDataNotProvidedError
|
350
|
-
end
|
351
|
-
end
|
352
|
-
end
|
353
|
-
|
354
|
-
describe "#value_at_by_name" do
|
355
|
-
context "when initialized source" do
|
356
|
-
before(:each) do
|
357
|
-
@values = %W(1 2 3 4 5 6 7 8 9)
|
358
|
-
@input_spec.source = @values
|
359
|
-
end
|
360
|
-
|
361
|
-
context "when access existing name" do
|
362
|
-
before(:each) do
|
363
|
-
@proc = lambda {
|
364
|
-
@input_spec.value_at_by_name("item_2")
|
365
|
-
}
|
366
|
-
end
|
367
|
-
|
368
|
-
it "should get value" do
|
369
|
-
@proc.call.should == @values[1]
|
370
|
-
end
|
371
|
-
end
|
372
|
-
|
373
|
-
context "when access non-existing name" do
|
374
|
-
before(:each) do
|
375
|
-
@proc = lambda {
|
376
|
-
@input_spec.value_at_by_name("unknown")
|
377
|
-
}
|
378
|
-
end
|
379
|
-
|
380
|
-
it "should raise error UnknownTargetExpressionError" do
|
381
|
-
@proc.should raise_error UnknownTargetExpressionError
|
382
|
-
end
|
383
|
-
end
|
384
|
-
end
|
385
|
-
|
386
|
-
context "when not initialized source" do
|
387
|
-
it "should raise error" do
|
388
|
-
lambda {
|
389
|
-
@input_spec.value_at_by_name("item_3")
|
390
|
-
}.should raise_error SourceDataNotProvidedError
|
391
|
-
end
|
392
|
-
end
|
393
|
-
end
|
394
|
-
|
395
|
-
describe "#spec_item_by_expression" do
|
396
|
-
context "when access existing index" do
|
397
|
-
before(:each) do
|
398
|
-
@proc = lambda {
|
399
|
-
@input_spec.spec_item_by_expression(3)
|
400
|
-
}
|
401
|
-
end
|
402
|
-
|
403
|
-
it "should get spec item" do
|
404
|
-
@proc.call.number.should == "4"
|
405
|
-
end
|
406
|
-
end
|
407
|
-
|
408
|
-
context "when access non-existing index" do
|
409
|
-
before(:each) do
|
410
|
-
@proc = lambda {
|
411
|
-
@input_spec.spec_item_by_expression(9)
|
412
|
-
}
|
413
|
-
end
|
414
|
-
|
415
|
-
it "should raise error UnknownTargetExpressionError" do
|
416
|
-
@proc.should raise_error UnknownTargetExpressionError
|
417
|
-
end
|
418
|
-
end
|
419
|
-
|
420
|
-
context "when access existing number" do
|
421
|
-
before(:each) do
|
422
|
-
@proc = lambda {
|
423
|
-
@input_spec.spec_item_by_expression("7")
|
424
|
-
}
|
425
|
-
end
|
426
|
-
|
427
|
-
it "should get spec item" do
|
428
|
-
@proc.call.number.should == "7"
|
429
|
-
end
|
430
|
-
end
|
431
|
-
|
432
|
-
context "when access non-existing number" do
|
433
|
-
before(:each) do
|
434
|
-
@proc = lambda {
|
435
|
-
@input_spec.spec_item_by_expression("10")
|
436
|
-
}
|
437
|
-
end
|
438
|
-
|
439
|
-
it "should raise error UnknownTargetExpressionError" do
|
440
|
-
@proc.should raise_error UnknownTargetExpressionError
|
441
|
-
end
|
442
|
-
end
|
443
|
-
|
444
|
-
context "when access existing name" do
|
445
|
-
before(:each) do
|
446
|
-
@proc = lambda {
|
447
|
-
@input_spec.spec_item_by_expression("item_2")
|
448
|
-
}
|
449
|
-
end
|
450
|
-
|
451
|
-
it "should get spec item" do
|
452
|
-
@proc.call.number.should == "2"
|
453
|
-
end
|
454
|
-
end
|
455
|
-
|
456
|
-
context "when access non-existing name" do
|
457
|
-
before(:each) do
|
458
|
-
@proc = lambda {
|
459
|
-
@input_spec.spec_item_by_expression("unknown")
|
460
|
-
}
|
461
|
-
end
|
462
|
-
|
463
|
-
it "should raise error UnknownTargetExpressionError" do
|
464
|
-
@proc.should raise_error UnknownTargetExpressionError
|
465
|
-
end
|
466
|
-
end
|
467
|
-
|
468
|
-
context "when access valid calculation expression" do
|
469
|
-
before(:each) do
|
470
|
-
@proc = lambda {
|
471
|
-
@input_spec.spec_item_by_expression("CALC::[[1]]+[[2]]")
|
472
|
-
}
|
473
|
-
end
|
474
|
-
|
475
|
-
it "should not raise error" do
|
476
|
-
@proc.should_not raise_error
|
477
|
-
end
|
478
|
-
|
479
|
-
it { @proc.call.should == [@input_spec.spec_item_at_by_number("1"),
|
480
|
-
@input_spec.spec_item_at_by_number("2")] }
|
481
|
-
end
|
482
|
-
|
483
|
-
context "when access invalid calculation expression with unknown number" do
|
484
|
-
before(:each) do
|
485
|
-
@proc = lambda {
|
486
|
-
@input_spec.spec_item_by_expression("CALC::[[1]]+[[12]]")
|
487
|
-
}
|
488
|
-
end
|
489
|
-
|
490
|
-
it "should raise UnknownTargetExpressionError" do
|
491
|
-
@proc.should raise_error UnknownTargetExpressionError
|
492
|
-
end
|
493
|
-
end
|
494
|
-
|
495
|
-
context "when access invalid calculation expression with syntax error" do
|
496
|
-
before(:each) do
|
497
|
-
@proc = lambda {
|
498
|
-
@input_spec.spec_item_by_expression("CALC::[[1]][[2]]")
|
499
|
-
}
|
500
|
-
end
|
501
|
-
|
502
|
-
it { @proc.call.should == [@input_spec.spec_item_at_by_number("1"),
|
503
|
-
@input_spec.spec_item_at_by_number("2")] }
|
504
|
-
end
|
505
|
-
end
|
506
|
-
|
507
|
-
describe "#spec_item_at" do
|
508
|
-
context "when access existing index" do
|
509
|
-
before(:each) do
|
510
|
-
@proc = lambda {
|
511
|
-
@input_spec.spec_item_at(3)
|
512
|
-
}
|
513
|
-
end
|
514
|
-
|
515
|
-
it "should get spec item" do
|
516
|
-
@proc.call.number.should == "4"
|
517
|
-
end
|
518
|
-
end
|
519
|
-
|
520
|
-
context "when access non-existing index" do
|
521
|
-
before(:each) do
|
522
|
-
@proc = lambda {
|
523
|
-
@input_spec.spec_item_at(9)
|
524
|
-
}
|
525
|
-
end
|
526
|
-
|
527
|
-
it "should raise error UnknownTargetExpressionError" do
|
528
|
-
@proc.should raise_error UnknownTargetExpressionError
|
529
|
-
end
|
530
|
-
end
|
531
|
-
end
|
532
|
-
|
533
|
-
describe "#spec_item_at_by_number" do
|
534
|
-
context "when access existing number" do
|
535
|
-
before(:each) do
|
536
|
-
@proc = lambda {
|
537
|
-
@input_spec.spec_item_at_by_number("7")
|
538
|
-
}
|
539
|
-
end
|
540
|
-
|
541
|
-
it "should get spec item" do
|
542
|
-
@proc.call.number.should == "7"
|
543
|
-
end
|
544
|
-
end
|
545
|
-
|
546
|
-
context "when access non-existing number" do
|
547
|
-
before(:each) do
|
548
|
-
@proc = lambda {
|
549
|
-
@input_spec.spec_item_at_by_number("10")
|
550
|
-
}
|
551
|
-
end
|
552
|
-
|
553
|
-
it "should raise error UnknownTargetExpressionError" do
|
554
|
-
@proc.should raise_error UnknownTargetExpressionError
|
555
|
-
end
|
556
|
-
end
|
557
|
-
end
|
558
|
-
|
559
|
-
describe "#spec_item_at_by_name" do
|
560
|
-
context "when access existing name" do
|
561
|
-
before(:each) do
|
562
|
-
@proc = lambda {
|
563
|
-
@input_spec.spec_item_at_by_name("item_2")
|
564
|
-
}
|
565
|
-
end
|
566
|
-
|
567
|
-
it "should get spec item" do
|
568
|
-
@proc.call.number.should == "2"
|
569
|
-
end
|
570
|
-
end
|
571
|
-
|
572
|
-
context "when access non-existing name" do
|
573
|
-
before(:each) do
|
574
|
-
@proc = lambda {
|
575
|
-
@input_spec.spec_item_at_by_name("unknown")
|
576
|
-
}
|
577
|
-
end
|
578
|
-
|
579
|
-
it "should raise error UnknownTargetExpressionError" do
|
580
|
-
@proc.should raise_error UnknownTargetExpressionError
|
581
|
-
end
|
582
|
-
end
|
583
|
-
end
|
584
|
-
end
|