foraneus 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,43 +2,45 @@ require 'spec_helper'
2
2
 
3
3
  describe Foraneus::Converters::Float do
4
4
 
5
+ subject { Foraneus::Converters::Float.new }
6
+
5
7
  describe '#parse' do
6
- context 'with valid values' do
8
+ describe 'with valid values' do
7
9
  let(:number) { 1234.5678 }
8
10
  let(:raw_number) { number.to_s }
9
11
 
10
12
  it 'returns a float number' do
11
13
  parsed = subject.parse(raw_number)
12
14
 
13
- parsed.should be_a(Float)
15
+ assert_kind_of Float, parsed
14
16
  end
15
17
 
16
18
  it 'parses the number' do
17
19
  parsed = subject.parse(raw_number)
18
20
 
19
- parsed.should == number
21
+ assert_equal number, parsed
20
22
  end
21
23
 
22
- context 'with big ones' do
24
+ describe 'with big ones' do
23
25
  let(:big_number) { (11 ** 20) + 0.33 }
24
26
  let(:raw_big_number) { big_number.to_s }
25
27
 
26
28
  it 'also returns a float number' do
27
29
  parsed = subject.parse(raw_big_number)
28
30
 
29
- parsed.should be_a(Float)
31
+ assert_kind_of Float, parsed
30
32
  end
31
33
 
32
34
  it 'also parses the number' do
33
35
  parsed = subject.parse(raw_big_number)
34
36
 
35
- parsed.should == big_number
37
+ assert_equal big_number, parsed
36
38
  end
37
39
  end
38
40
  end
39
41
 
40
- context 'when separator and delimiter are given' do
41
- subject(:converter) {
42
+ describe 'when separator and delimiter are given' do
43
+ let(:converter) {
42
44
  Foraneus::Converters::Float.new(:delimiter => '.', :separator => ',')
43
45
  }
44
46
 
@@ -46,35 +48,35 @@ describe Foraneus::Converters::Float do
46
48
  s = '1.234.567,89'
47
49
  n = 1_234_567.89
48
50
 
49
- converter.parse(s).should eq(n)
51
+ assert_equal n, converter.parse(s)
50
52
  end
51
53
 
52
54
  it 'parses a float representation when no integer part' do
53
55
  s = ',56'
54
56
  n = 0.56
55
57
 
56
- converter.parse(s).should eq(n)
58
+ assert_equal n, converter.parse(s)
57
59
  end
58
60
  end
59
61
 
60
- context 'with invalid values' do
62
+ describe 'with invalid values' do
61
63
  let(:raw_invalid) { 'INVALID' }
62
64
 
63
65
  it 'raises an error' do
64
- expect {
66
+ assert_raises(ArgumentError) {
65
67
  subject.parse(raw_invalid)
66
- }.to raise_error
68
+ }
67
69
  end
68
70
  end
69
71
  end
70
72
 
71
73
  describe '#raw' do
72
74
  it 'returns a string representation' do
73
- subject.raw(2.34).should eq('2.34')
75
+ assert_equal '2.34', subject.raw(2.34)
74
76
  end
75
77
 
76
- context 'when separator and delimiter are given' do
77
- subject(:converter) {
78
+ describe 'when separator and delimiter are given' do
79
+ let(:converter) {
78
80
  Foraneus::Converters::Float.new(:delimiter => '.', :separator => ',')
79
81
  }
80
82
 
@@ -82,28 +84,28 @@ describe Foraneus::Converters::Float do
82
84
  n = 1_234_567.89
83
85
  s = '1.234.567,89'
84
86
 
85
- converter.raw(n).should eq(s)
87
+ assert_equal s, converter.raw(n)
86
88
  end
87
89
  end
88
90
 
89
- context 'when precision is given' do
90
- subject(:converter) {
91
+ describe 'when precision is given' do
92
+ let(:converter) {
91
93
  Foraneus::Converters::Float.new(:precision => 2)
92
94
  }
93
95
 
94
96
  it 'fills with zeros when value precision is smaller than converter precision' do
95
97
  n = 3.1
96
- converter.raw(n).should eq('3.10')
98
+ assert_equal '3.10', converter.raw(n)
97
99
  end
98
100
 
99
101
  it 'does not affect the representation when precision and converter precision are both equal' do
100
102
  n = 3.14
101
- converter.raw(n).should eq('3.14')
103
+ assert_equal '3.14', converter.raw(n)
102
104
  end
103
105
 
104
106
  it 'does not truncate the representation when precision is larger than converter precision' do
105
107
  n = 3.145
106
- converter.raw(n).should eq('3.145')
108
+ assert_equal '3.145', converter.raw(n)
107
109
  end
108
110
  end
109
111
 
@@ -2,43 +2,46 @@ require 'spec_helper'
2
2
 
3
3
  describe Foraneus::Converters::Integer do
4
4
 
5
+ let(:converter) { Foraneus::Converters::Integer.new }
6
+
5
7
  describe '#parse' do
6
- context 'with valid values' do
8
+
9
+ describe 'with valid values' do
7
10
  let(:number) { 1234 }
8
11
  let(:raw_number) { number.to_s }
9
12
 
10
13
  it 'returns an integer number' do
11
- parsed = subject.parse(raw_number)
14
+ parsed = converter.parse(raw_number)
12
15
 
13
- parsed.should be_a(Integer)
16
+ assert_kind_of Integer, parsed
14
17
  end
15
18
 
16
19
  it 'parses the number' do
17
- parsed = subject.parse(raw_number)
20
+ parsed = converter.parse(raw_number)
18
21
 
19
- parsed.should == number
22
+ assert_equal number, parsed
20
23
  end
21
24
 
22
- context 'with big ones' do
25
+ describe 'with big ones' do
23
26
  let(:big_number) { (11 ** 20) }
24
27
  let(:raw_big_number) { big_number.to_s }
25
28
 
26
29
  it 'also returns an integer' do
27
- parsed = subject.parse(raw_big_number)
30
+ parsed = converter.parse(raw_big_number)
28
31
 
29
- parsed.should be_a(Integer)
32
+ assert_kind_of Integer, parsed
30
33
  end
31
34
 
32
35
  it 'also parses the number' do
33
- parsed = subject.parse(raw_big_number)
36
+ parsed = converter.parse(raw_big_number)
34
37
 
35
- parsed.should == big_number
38
+ assert_equal big_number, parsed
36
39
  end
37
40
  end
38
41
  end
39
42
 
40
- context 'when delimiter is given' do
41
- subject(:converter) {
43
+ describe 'when delimiter is given' do
44
+ let(:converter) {
42
45
  Foraneus::Converters::Integer.new(:delimiter => '.')
43
46
  }
44
47
 
@@ -46,44 +49,44 @@ describe Foraneus::Converters::Integer do
46
49
  s = '1.234.567'
47
50
  n = 1_234_567
48
51
 
49
- converter.parse(s).should eq(n)
52
+ assert_equal n, converter.parse(s)
50
53
  end
51
54
  end
52
55
 
53
- context 'with invalid values' do
56
+ describe 'with invalid values' do
54
57
  let(:raw_invalid) { 'INVALID' }
55
58
 
56
59
  it 'raises an error' do
57
- expect {
58
- subject.parse(raw_invalid)
59
- }.to raise_error
60
+ assert_raises(ArgumentError) {
61
+ converter.parse(raw_invalid)
62
+ }
60
63
  end
61
64
  end
62
65
 
63
- context 'with empty values' do
66
+ describe 'with empty values' do
64
67
  it 'raises an error' do
65
- expect {
66
- subject.parse('')
67
- }.to raise_error
68
+ assert_raises(ArgumentError) {
69
+ converter.parse('')
70
+ }
68
71
  end
69
72
  end
70
73
 
71
- context 'with nil values' do
74
+ describe 'with nil values' do
72
75
  it 'raises an error' do
73
- expect {
74
- subject.parse(nil)
75
- }.to raise_error
76
+ assert_raises(TypeError) {
77
+ converter.parse(nil)
78
+ }
76
79
  end
77
80
  end
78
81
  end
79
82
 
80
83
  describe '#raw' do
81
84
  it 'returns a string representation' do
82
- subject.raw(2).should eq('2')
85
+ assert_equal('2', converter.raw(2))
83
86
  end
84
87
 
85
- context 'when delimiter is given' do
86
- subject(:converter) {
88
+ describe 'when delimiter is given' do
89
+ let(:converter) {
87
90
  Foraneus::Converters::Integer.new(:delimiter => '.')
88
91
  }
89
92
 
@@ -91,7 +94,7 @@ describe Foraneus::Converters::Integer do
91
94
  n = 1_234_567
92
95
  s = '1.234.567'
93
96
 
94
- converter.raw(n).should eq(s)
97
+ assert_equal(s, converter.raw(n))
95
98
  end
96
99
  end
97
100
 
@@ -2,11 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  describe Foraneus::Converters::Noop do
4
4
 
5
+ let(:converter) { Foraneus::Converters::Noop.new }
6
+
5
7
  describe '#parse' do
6
8
  it 'returns the given object' do
7
9
  o = Object.new
8
10
 
9
- subject.parse(o).should be(o)
11
+ assert_equal(o, converter.parse(o))
10
12
  end
11
13
  end
12
14
 
@@ -14,7 +16,7 @@ describe Foraneus::Converters::Noop do
14
16
  it 'returns the given object' do
15
17
  o = Object.new
16
18
 
17
- subject.raw(o).should be(o)
19
+ assert_equal(o, converter.raw(o))
18
20
  end
19
21
  end
20
22
  end
@@ -2,27 +2,29 @@ require 'spec_helper'
2
2
 
3
3
  describe Foraneus::Converters::String do
4
4
 
5
+ subject { Foraneus::Converters::String.new }
6
+
5
7
  describe '#parse' do
6
8
  it 'returns the string' do
7
9
  parsed = subject.parse('string')
8
10
 
9
- parsed.should eq('string')
11
+ assert_equal 'string', parsed
10
12
  end
11
13
 
12
14
  it 'returns a string representation' do
13
15
  parsed = subject.parse(1)
14
16
 
15
- parsed.should eq('1')
17
+ assert_equal '1', parsed
16
18
  end
17
19
  end
18
20
 
19
21
  describe '#raw' do
20
22
  it 'returns the string' do
21
- subject.raw('a string').should eq('a string')
23
+ assert_equal 'string', subject.raw('string')
22
24
  end
23
25
 
24
26
  it 'returns a string representation' do
25
- subject.raw(1).should eq('1')
27
+ assert_equal '1', subject.raw(1)
26
28
  end
27
29
  end
28
30
  end
@@ -10,259 +10,350 @@ describe Foraneus do
10
10
  end
11
11
  }
12
12
 
13
- describe '.parse' do
14
- context 'with parseable data' do
15
- subject(:form) { form_spec.parse(:delay => '5') }
16
-
17
- its(:delay) { should eq(5) }
13
+ describe 'when errors accessor is renamed' do
14
+ let(:form_spec) {
15
+ Class.new(Foraneus) do
18
16
 
19
- its(:data) { should include(:delay => 5) }
17
+ field :errors
20
18
 
21
- its([:delay]) { should eq('5') }
19
+ accessors[:errors] = :non_clashing_errors
20
+ end
21
+ }
22
22
 
23
- its(['delay']) { should be_nil }
23
+ describe 'a parsed form' do
24
+ let(:form) { form_spec.parse(:errors => 'errors') }
24
25
 
25
- its([]) { should include(:delay => '5') }
26
+ it 'can return the errors field value' do
27
+ assert_equal 'errors', form.errors
28
+ end
26
29
 
27
- it { should be_valid }
30
+ it 'can return the raw errors value' do
31
+ assert_equal 'errors', form[:errors]
32
+ end
28
33
 
29
- its([:errors]) { should be_empty }
34
+ it 'responds to the new accessor' do
35
+ assert_equal({}, form.non_clashing_errors)
36
+ end
37
+ end
38
+ end
30
39
 
31
- context 'when strings as keys' do
32
- subject(:form) { form_spec.parse('delay' => '5') }
40
+ describe 'when data accessor is renamed' do
41
+ let(:form_spec) {
42
+ Class.new(Foraneus) do
33
43
 
34
- its(['delay']) { should eq('5') }
44
+ field :delay
45
+ field :data
35
46
 
36
- its([:delay]) { should eq('5') }
47
+ accessors[:data] = :non_clashing_data
48
+ end
49
+ }
37
50
 
38
- its(:data) { should include('delay' => 5) }
51
+ describe 'a parsed form' do
52
+ let(:form) { form_spec.parse(:delay => 5, :data => 'value') }
39
53
 
40
- its([]) { should include('delay' => '5') }
54
+ it 'can return the data field value' do
55
+ assert_equal 'value', form.data
41
56
  end
42
57
 
43
- context 'when empty strings' do
44
- let(:converter) { Foraneus::Converters::String.new }
58
+ it 'responds to the new accessor' do
59
+ assert_equal({:delay => 5, :data => 'value'}, form.non_clashing_data)
60
+ end
45
61
 
46
- subject(:form) { form_spec.parse(:delay => '') }
62
+ end
47
63
 
48
- its(:delay) { should eq(nil) }
64
+ describe 'when obtaining a raw representation' do
65
+ let(:form) { form_spec.raw(:delay => 5, :data => 'value') }
49
66
 
50
- its(:data) { should include(:delay => nil) }
67
+ it 'allows access to the data field value' do
68
+ assert_equal 'value', form[:data]
69
+ end
51
70
 
52
- it { should be_valid }
71
+ it 'allows access to whole data set' do
72
+ assert_equal({:delay => 5, :data => 'value'}, form[])
53
73
  end
54
74
  end
75
+ end
55
76
 
56
- context 'with non parseable data' do
57
- subject(:form) { form_spec.parse(:delay => 'FIVE') }
77
+ describe '.parse' do
78
+ describe 'with parseable data' do
79
+ subject { form_spec.parse(:delay => '5') }
58
80
 
59
- its(:delay) { should be_nil }
81
+ it 'parses' do
60
82
 
61
- its([:delay]) { should eq('FIVE') }
83
+ assert_equal 5, subject.delay
84
+ assert_equal 5, subject.data[:delay]
62
85
 
63
- it { should_not be_valid }
86
+ assert_equal '5', subject[:delay]
87
+ assert_nil subject['delay']
88
+ assert_equal({ :delay => '5' }, subject[])
64
89
 
65
- its([:errors]) { should include(:delay) }
90
+ assert subject.valid?
66
91
 
67
- describe 'an error' do
68
- subject(:error) { form[:errors].values.first }
92
+ assert_empty subject.errors
93
+ end
69
94
 
70
- let(:converter_exception) do
71
- begin
72
- converter.parse('FIVE')
73
- rescue
74
- e = $!
75
- end
95
+ describe 'when strings as keys' do
96
+ subject { form_spec.parse('delay' => '5') }
76
97
 
77
- e
98
+ it 'parses given data' do
99
+ assert_equal '5', subject['delay']
100
+ assert_equal '5', subject[:delay]
101
+ assert_equal 5, subject.data['delay']
102
+
103
+ assert_equal({ 'delay' => '5' }, subject[])
78
104
  end
105
+ end
79
106
 
80
- its(:key) { should eq(converter_exception.class.name) }
107
+ describe 'when empty strings' do
108
+ subject { form_spec.parse(:delay => '') }
81
109
 
82
- its(:message) { should eq(converter_exception.message) }
83
- end
84
- end
110
+ it 'parses' do
111
+ assert_nil subject.delay
85
112
 
86
- context 'with unexpected data' do
87
- subject(:form) { form_spec.parse(:position => 'north') }
113
+ assert_nil subject.data[:delay]
88
114
 
89
- it 'does not have a getter for the received param' do
90
- expect {
91
- form.position
92
- }.to raise_error(NoMethodError)
115
+ assert subject.valid?
116
+ end
93
117
  end
94
118
 
95
- its(:data) { should_not include(:position) }
119
+ describe 'with non parseable data' do
120
+ subject { form_spec.parse(:delay => 'FIVE') }
96
121
 
97
- its([:position]) { should eq('north') }
122
+ it 'sets corresponding data as nil' do
123
+ assert_nil subject.delay
98
124
 
99
- its([]) { should include(:position => 'north') }
125
+ assert_equal 'FIVE', subject[:delay]
100
126
 
101
- it { should be_valid }
102
- end
127
+ refute subject.valid?
103
128
 
104
- context 'when a field is declared as blanks_as_nil = true' do
105
- let(:converter) { Foraneus::Converters::String.new(:blanks_as_nil => true) }
129
+ assert_includes subject.errors, :delay
130
+ end
106
131
 
107
- subject(:form) { form_spec.parse(:delay => '') }
132
+ describe 'an error' do
133
+ let(:error) { subject.errors.values.first }
108
134
 
109
- its(:delay) { should be_nil }
135
+ let(:converter_exception) do
136
+ begin
137
+ converter.parse('FIVE')
138
+ rescue
139
+ e = $!
140
+ end
110
141
 
111
- its(:data) { should include(:delay => nil) }
142
+ e
143
+ end
112
144
 
113
- its([:delay]) { should eq('') }
145
+ it 'provides a key' do
146
+ assert_equal error.key, converter_exception.class.name
147
+ end
114
148
 
115
- its([]) { should include(:delay => '') }
116
- end
149
+ it 'provides a message' do
150
+ assert_equal error.message, converter_exception.message
151
+ end
152
+ end
153
+ end
117
154
 
118
- context 'when a field is declared as blanks_as_nil = false' do
119
- let(:converter) { Foraneus::Converters::String.new(:blanks_as_nil => false) }
155
+ describe 'with unexpected data' do
156
+ subject { form_spec.parse(:position => 'north') }
120
157
 
121
- subject(:form) { form_spec.parse(:delay => '') }
158
+ it 'does not have a getter for the received param' do
159
+ assert_raises(NoMethodError) {
160
+ subject.position
161
+ }
162
+ end
122
163
 
123
- its(:delay) { should eq('') }
164
+ it 'parses' do
165
+ refute_includes subject.data, :position
124
166
 
125
- its(:data) { should include(:delay => '') }
126
- end
167
+ assert_equal 'north', subject[:position]
127
168
 
128
- shared_examples 'an absent parameters value handler' do |missing_value|
129
- subject(:form) { form_spec.parse(:delay => missing_value) }
169
+ assert_equal 'north', subject[][:position]
130
170
 
131
- it { should be_valid }
171
+ assert subject.valid?
172
+ end
173
+ end
132
174
 
133
- its(:delay) { should be_nil }
175
+ describe 'when a field is declared as blanks_as_nil = true' do
176
+ let(:converter) { Foraneus::Converters::String.new(:blanks_as_nil => true) }
134
177
 
135
- its(:data) { should include(:delay => nil) }
178
+ subject { form_spec.parse(:delay => '') }
136
179
 
137
- its([:delay]) { should eq(missing_value) }
180
+ it 'parses' do
181
+ assert_nil subject.delay
138
182
 
139
- its([]) { should include(:delay => missing_value) }
183
+ assert_equal({ :delay => nil }, subject.data)
184
+ assert_equal '', subject[:delay]
185
+ assert_equal({ :delay => '' }, subject[])
186
+ end
187
+ end
140
188
 
141
- context 'when required field' do
142
- let(:converter) { Foraneus::Converters::Integer.new(:required => true) }
189
+ describe 'when a field is declared as blanks_as_nil = false' do
190
+ let(:converter) { Foraneus::Converters::String.new(:blanks_as_nil => false) }
143
191
 
144
- it { should_not be_valid }
192
+ subject { form_spec.parse(:delay => '') }
145
193
 
146
- its(:delay) { should be_nil }
194
+ it 'parses' do
195
+ assert_equal '', subject.delay
196
+ assert_equal '', subject.data[:delay]
197
+ end
198
+ end
147
199
 
148
- its(:data) { should_not include(:delay) }
200
+ an_absent_parameters_value_handler = ->(missing_value) do
201
+ subject { form_spec.parse(:delay => missing_value) }
149
202
 
150
- its([:delay]) { should eq(missing_value) }
203
+ it 'parses' do
204
+ assert subject.valid?
151
205
 
152
- its([]) { should include(:delay => missing_value) }
206
+ assert_nil subject.delay
153
207
 
154
- its([:errors]) { should include(:delay) }
208
+ assert_equal missing_value, subject[:delay]
209
+ assert_equal missing_value, subject[][:delay]
210
+ end
155
211
 
156
- describe 'an error' do
157
- subject(:error) { form[:errors].values.first }
212
+ describe 'when required field' do
213
+ let(:converter) { Foraneus::Converters::Integer.new(:required => true) }
214
+
215
+ it 'parses' do
216
+ refute subject.valid?
217
+
218
+ assert_nil subject.delay
219
+
220
+ refute_includes subject.data, :delay
221
+
222
+ assert_equal missing_value, subject[][:delay]
158
223
 
159
- its(:key) { should eq('KeyError') }
224
+ assert_includes subject.errors, :delay
225
+ end
226
+
227
+ describe 'an error' do
228
+ let(:error) { subject.errors.values.first }
229
+
230
+ it 'has key = KeyError' do
231
+ assert_equal 'KeyError', error.key
232
+ end
233
+ end
160
234
  end
161
235
  end
162
- end
163
236
 
164
- context 'with nil values' do
165
- it_behaves_like 'an absent parameters value handler', nil
166
- end
167
-
168
- context 'with empty values' do
169
- it_behaves_like 'an absent parameters value handler', ''
170
- end
237
+ describe 'with nil values' do
238
+ instance_exec(nil, &an_absent_parameters_value_handler)
239
+ end
171
240
 
172
- context 'when required field' do
173
- let(:converter) { Foraneus::Converters::Integer.new(:required => true) }
241
+ describe 'with empty values' do
242
+ instance_exec('', &an_absent_parameters_value_handler)
243
+ end
174
244
 
175
- context 'when missing input parameter' do
176
- subject(:form) { form_spec.parse }
245
+ describe 'when required field' do
246
+ let(:converter) { Foraneus::Converters::Integer.new(:required => true) }
177
247
 
178
- it { should_not be_valid }
248
+ describe 'when missing input parameter' do
249
+ subject { form_spec.parse }
179
250
 
180
- its(:delay) { should be_nil }
251
+ it 'parses' do
252
+ refute subject.valid?
181
253
 
182
- its([:delay]) { should be_nil }
254
+ assert_nil subject.delay
255
+ assert_nil subject[:delay]
256
+ end
257
+ end
183
258
  end
184
- end
185
259
 
186
- context 'when default value' do
187
- let(:converter) { Foraneus::Converters::Integer.new(:default => 1) }
260
+ describe 'when default value' do
261
+ let(:converter) { Foraneus::Converters::Integer.new(:default => 1) }
188
262
 
189
- subject(:form) { form_spec.parse }
263
+ subject { form_spec.parse }
190
264
 
191
- it { should be_valid }
265
+ it 'parses' do
266
+ assert subject.valid?
192
267
 
193
- its(:delay) { should eq(1) }
268
+ assert_equal 1, subject.delay
194
269
 
195
- its(:data) { should include(:delay => 1) }
270
+ assert_equal 1, subject.data[:delay]
196
271
 
197
- its([:delay]) { should be_nil}
272
+ assert_nil subject[:delay]
198
273
 
199
- its([]) { should include(:delay => nil) }
274
+ assert_nil subject[][:delay]
200
275
 
201
- its([:errors]) { should_not include(:delay) }
276
+ refute subject.errors.include?(:delay)
277
+ end
202
278
 
203
- context 'when missing required field' do
204
- let(:converter) { Foraneus::Converters::Integer.new(:default => 1, :required => true) }
279
+ describe 'when missing required field' do
280
+ let(:converter) { Foraneus::Converters::Integer.new(:default => 1, :required => true) }
205
281
 
206
- subject(:form) { form_spec.parse }
282
+ subject { form_spec.parse }
207
283
 
208
- it { should_not be_valid }
284
+ it 'parses' do
285
+ refute subject.valid?
209
286
 
210
- its(:delay) { should be_nil }
287
+ assert_nil subject.delay
211
288
 
212
- its([:delay]) { should be_nil }
289
+ assert_nil subject[:delay]
290
+ end
291
+ end
213
292
  end
214
293
  end
215
294
  end
216
295
 
217
296
  describe '.raw' do
218
- subject(:form) { form_spec.raw(:delay => 5) }
297
+ subject { form_spec.raw(:delay => 5) }
219
298
 
220
- its(:data) { should include(:delay => 5) }
299
+ it 'parses' do
300
+ assert_equal 5, subject.data[:delay]
221
301
 
222
- its(:delay) { should eq(5) }
302
+ assert_equal 5, subject.delay
223
303
 
224
- its([:delay]) { should eq('5') }
304
+ assert_equal '5', subject[:delay]
225
305
 
226
- its([]) { should include(:delay => '5') }
306
+ assert_equal '5', subject[][:delay]
227
307
 
228
- it { should be_valid }
308
+ assert subject.valid?
229
309
 
230
- its([:errors]) { should be_empty }
310
+ assert_empty subject.errors
311
+ end
312
+
313
+ describe 'when strings as keys' do
314
+ subject { form_spec.raw('delay' => 5) }
231
315
 
232
- context 'when strings as keys' do
233
- subject(:form) { form_spec.raw('delay' => 5) }
316
+ it 'parses' do
317
+ assert_equal 5, subject.data['delay']
234
318
 
235
- its(:data) { should include('delay' => 5) }
319
+ assert_equal '5', subject['delay']
236
320
 
237
- its(['delay']) { should eq('5') }
321
+ assert_equal '5', subject[:delay]
238
322
 
239
- its([:delay]) { should eq('5') }
323
+ assert_equal '5', subject[]['delay']
240
324
 
241
- its([]) { should include('delay' => '5') }
325
+ assert subject.valid?
326
+
327
+ assert_empty subject.errors
328
+ end
242
329
  end
243
330
 
244
- context 'with nil values' do
245
- subject(:form) { form_spec.raw('delay' => nil) }
331
+ describe 'with nil values' do
332
+ subject { form_spec.raw('delay' => nil) }
246
333
 
247
- its(:data) { should include('delay' => nil) }
334
+ it 'parses' do
335
+ assert_nil subject.data['delay']
248
336
 
249
- its(['delay']) { should eq(nil) }
337
+ assert_nil subject['delay']
250
338
 
251
- its([:delay]) { should eq(nil) }
339
+ assert_nil subject[:delay]
252
340
 
253
- its([]) { should include('delay' => nil) }
341
+ assert_nil subject[]['delay']
342
+ end
254
343
  end
255
344
 
256
- context 'when default value' do
345
+ describe 'when default value' do
257
346
  let(:converter) { Foraneus::Converters::Integer.new(:default => 1) }
258
347
 
259
- subject(:form) { form_spec.raw }
260
-
261
- its(:delay) { should be_nil }
348
+ subject { form_spec.raw }
262
349
 
263
- its([:delay]) { should eq('1') }
350
+ it 'parses' do
351
+ assert_nil subject.delay
264
352
 
265
- its([]) { should include(:delay => '1') }
353
+ assert_equal '1', subject[:delay]
354
+ assert_equal '1', subject[][:delay]
355
+ end
266
356
  end
267
357
  end
358
+
268
359
  end