foraneus 0.0.12 → 0.0.13

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.
@@ -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