suretax 0.2.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +4 -0
  3. data/.rubocop.yml +111 -0
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +9 -9
  6. data/lib/suretax.rb +0 -1
  7. data/lib/suretax/api.rb +7 -7
  8. data/lib/suretax/api/cancel_request.rb +7 -7
  9. data/lib/suretax/api/group.rb +5 -6
  10. data/lib/suretax/api/item_message.rb +3 -3
  11. data/lib/suretax/api/request.rb +37 -37
  12. data/lib/suretax/api/request_item.rb +13 -17
  13. data/lib/suretax/api/response.rb +18 -19
  14. data/lib/suretax/api/tax.rb +11 -12
  15. data/lib/suretax/api/tax_amount.rb +3 -4
  16. data/lib/suretax/concerns.rb +1 -3
  17. data/lib/suretax/concerns/validatable.rb +21 -27
  18. data/lib/suretax/configuration.rb +17 -20
  19. data/lib/suretax/connection.rb +3 -5
  20. data/lib/suretax/constants/regulatory_codes.rb +8 -8
  21. data/lib/suretax/constants/response_groups.rb +6 -6
  22. data/lib/suretax/constants/sales_type_codes.rb +5 -5
  23. data/lib/suretax/constants/tax_situs_codes.rb +10 -10
  24. data/lib/suretax/constants/transaction_type_codes.rb +2 -2
  25. data/lib/suretax/response.rb +7 -10
  26. data/lib/suretax/version.rb +1 -1
  27. data/spec/lib/suretax/api/group_spec.rb +21 -22
  28. data/spec/lib/suretax/api/request_item_spec.rb +10 -12
  29. data/spec/lib/suretax/api/request_item_validations_spec.rb +73 -76
  30. data/spec/lib/suretax/api/request_spec.rb +62 -66
  31. data/spec/lib/suretax/api/request_validations_spec.rb +141 -143
  32. data/spec/lib/suretax/api/response_spec.rb +48 -52
  33. data/spec/lib/suretax/api/tax_amount_spec.rb +12 -12
  34. data/spec/lib/suretax/api/tax_spec.rb +26 -28
  35. data/spec/lib/suretax/configuration_spec.rb +21 -24
  36. data/spec/lib/suretax/connection_spec.rb +11 -15
  37. data/spec/lib/suretax/response_spec.rb +27 -31
  38. data/spec/spec_helper.rb +16 -17
  39. data/spec/support/cancellation_helper.rb +0 -1
  40. data/spec/support/connection_shared_examples.rb +8 -10
  41. data/spec/support/request_helper.rb +13 -14
  42. data/spec/support/suretax_helper.rb +2 -4
  43. data/spec/support/validations_shared_examples.rb +12 -12
  44. data/suretax.gemspec +10 -8
  45. metadata +7 -7
  46. data/.travis.yml +0 -13
@@ -1,14 +1,13 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Suretax::Api::Request do
4
-
5
4
  let(:args) { suretax_valid_request_params }
6
5
  let(:api_request) { Suretax::Api::Request.new(args) }
7
6
  let(:valid_params) { valid_encoded_test_request_body }
8
7
 
9
- describe 'accessors' do
8
+ describe "accessors" do
10
9
  {
11
- business_unit: "testing",
10
+ business_unit: "testing",
12
11
  client_number: suretax_client_number,
13
12
  client_tracking: "track",
14
13
  data_month: "7",
@@ -20,83 +19,81 @@ describe Suretax::Api::Request do
20
19
  return_file_code: "0",
21
20
  total_revenue: "40",
22
21
  validation_key: suretax_key
23
- }.each_pair do |key,value|
22
+ }.each_pair do |key, value|
24
23
 
25
24
  it "##{key} should return the correct value" do
26
- api_request.send("#{key.to_s}=",value)
25
+ api_request.send("#{key}=", value)
27
26
  expect(api_request.send(key)).to eql(value)
28
27
  end
29
-
30
28
  end
31
29
  end
32
30
 
33
- context 'configuration' do
34
- it 'should use Suretax.configuration by default' do
31
+ context "configuration" do
32
+ it "should use Suretax.configuration by default" do
35
33
  req = Suretax::Api::Request.new
36
34
  expect(req.client_number).to eql(suretax_client_number)
37
35
  end
38
36
 
39
- it 'should allow the default configuration to be overridden' do
40
- client_number = '1122334455'
37
+ it "should allow the default configuration to be overridden" do
38
+ client_number = "1122334455"
41
39
 
42
- req = Suretax::Api::Request.new({client_number: client_number})
40
+ req = Suretax::Api::Request.new(client_number: client_number)
43
41
 
44
42
  expect(req.client_number).to eql(client_number)
45
43
  end
46
44
  end
47
45
 
48
- context 'defaults' do
49
- describe '#client_number' do
50
- it 'should have :client_number set to the configuration default' do
46
+ context "defaults" do
47
+ describe "#client_number" do
48
+ it "should have :client_number set to the configuration default" do
51
49
  req = Suretax::Api::Request.new
52
50
  expect(req.client_number).to eql(suretax_client_number)
53
51
  end
54
52
 
55
- it 'should allow you to override the default' do
56
- client_no = '9911991199'
57
- req = Suretax::Api::Request.new({ client_number: client_no })
53
+ it "should allow you to override the default" do
54
+ client_no = "9911991199"
55
+ req = Suretax::Api::Request.new(client_number: client_no)
58
56
  expect(req.client_number).to eql(client_no)
59
57
  end
60
58
  end
61
59
 
62
- describe '#validation_key' do
63
- it 'should have :validation_key set to the configuration default' do
60
+ describe "#validation_key" do
61
+ it "should have :validation_key set to the configuration default" do
64
62
  req = Suretax::Api::Request.new
65
63
  expect(req.validation_key).to eql(suretax_key)
66
64
  end
67
65
 
68
- it 'should allow you to override the default' do
69
- key = '9911991199-abdce-000000000'
70
- req = Suretax::Api::Request.new({ validation_key: key })
66
+ it "should allow you to override the default" do
67
+ key = "9911991199-abdce-000000000"
68
+ req = Suretax::Api::Request.new(validation_key: key)
71
69
  expect(req.validation_key).to eql(key)
72
70
  end
73
71
  end
74
72
 
75
- describe '#return_file_code' do
73
+ describe "#return_file_code" do
76
74
  it 'should have :return_file_code set to "0"' do
77
75
  req = Suretax::Api::Request.new
78
- expect(req.return_file_code).to eql('0')
76
+ expect(req.return_file_code).to eql("0")
79
77
  end
80
78
 
81
- it 'should allow you to override the default' do
82
- req = Suretax::Api::Request.new({ return_file_code: 'Q' })
83
- expect(req.return_file_code).to eql('Q')
79
+ it "should allow you to override the default" do
80
+ req = Suretax::Api::Request.new(return_file_code: "Q")
81
+ expect(req.return_file_code).to eql("Q")
84
82
  end
85
83
  end
86
-
87
84
  end
88
85
 
89
- describe '#params' do
90
- it 'should return a valid parameters hash' do
86
+ describe "#params" do
87
+ it "should return a valid parameters hash" do
91
88
  expect(api_request.params).to eql(valid_params)
92
89
  end
93
90
  end
94
91
 
95
92
  describe "#submit" do
96
- subject{ api_request.submit }
93
+ subject { api_request.submit }
97
94
  let(:api_path) { suretax_post_path }
98
95
 
99
- before(:each) do
96
+ before(:each) do
100
97
  stub_request(:post, "#{suretax_url}#{api_path}").to_return(
101
98
  status: 200,
102
99
  body: suretax_wrap_response(valid_test_response_body.to_json)
@@ -107,10 +104,10 @@ describe Suretax::Api::Request do
107
104
  should be_a_kind_of(Suretax::Api::Response)
108
105
  end
109
106
 
110
- its('groups.size'){ should >= 1 }
107
+ its("groups.size") { should >= 1 }
111
108
 
112
109
  it "should have taxes" do
113
- subject.groups.map(&:taxes).should_not be_empty
110
+ subject.groups.map(&:taxes).should_not be_empty
114
111
  end
115
112
 
116
113
  it "should have a transaction number" do
@@ -120,15 +117,15 @@ describe Suretax::Api::Request do
120
117
  end
121
118
 
122
119
  describe "#rollback" do
123
- subject{ api_request.rollback }
120
+ subject { api_request.rollback }
124
121
 
125
122
  context "before submitting the request" do
126
- before(:each){ api_request.send(:response).should be_nil }
127
- it{ should be_nil }
123
+ before(:each) { api_request.send(:response).should be_nil }
124
+ it { should be_nil }
128
125
  end
129
126
 
130
127
  context "after submitting the request" do
131
- before(:each) do
128
+ before(:each) do
132
129
  stub_request(:post, "#{suretax_url}#{suretax_post_path}").to_return(
133
130
  status: 200,
134
131
  body: suretax_wrap_response(valid_test_response_body.to_json)
@@ -138,62 +135,61 @@ describe Suretax::Api::Request do
138
135
 
139
136
  it "should issue a cancel request" do
140
137
  Suretax::Api::CancelRequest.should_receive(:new).
141
- with(transaction: api_request.response.transaction,
142
- client_number: api_request.client_number,
143
- validation_key: api_request.validation_key,
138
+ with(transaction: api_request.response.transaction,
139
+ client_number: api_request.client_number,
140
+ validation_key: api_request.validation_key,
144
141
  client_tracking: api_request.client_tracking).
145
- and_return( double(Suretax::Api::CancelRequest, submit: true) )
142
+ and_return(double(Suretax::Api::CancelRequest, submit: true))
146
143
  subject
147
144
  end
148
145
  end
149
146
  end
150
147
 
151
- describe '#data_month' do
148
+ describe "#data_month" do
152
149
  subject { Suretax::Api::Request.new(options) }
153
150
 
154
- context 'when the value is supplied' do
155
- let(:options) { { data_month: '04' } }
156
- its(:data_month) { should eql '04' }
151
+ context "when the value is supplied" do
152
+ let(:options) { { data_month: "04" } }
153
+ its(:data_month) { should eql "04" }
157
154
  end
158
155
 
159
- context 'when the value is not supplied' do
160
- let(:options) { { } }
156
+ context "when the value is not supplied" do
157
+ let(:options) { {} }
161
158
 
162
- context 'and Suretax is configured for production' do
159
+ context "and Suretax is configured for production" do
163
160
  before(:each) { Suretax.configuration.stub(:test?).and_return(false) }
164
- its(:data_month) { should eql Date.today.strftime('%m') }
161
+ its(:data_month) { should eql Date.today.strftime("%m") }
165
162
  end
166
163
 
167
- context 'and Suretax is not configured for production' do
164
+ context "and Suretax is not configured for production" do
168
165
  before(:each) { Suretax.configuration.stub(:test?).and_return(true) }
169
- its(:data_month) { should eql Date.today.prev_month.strftime('%m') }
166
+ its(:data_month) { should eql Date.today.prev_month.strftime("%m") }
170
167
  end
171
168
  end
172
169
  end
173
170
 
174
- describe '#data_year' do
171
+ describe "#data_year" do
175
172
  subject { Suretax::Api::Request.new(options) }
176
173
 
177
- context 'when the value is supplied' do
178
- let(:options) { { data_year: '2012', data_month: '01' } }
179
- its(:data_year) { should eql '2012' }
180
- its(:data_month) { should eql '01' }
174
+ context "when the value is supplied" do
175
+ let(:options) { { data_year: "2012", data_month: "01" } }
176
+ its(:data_year) { should eql "2012" }
177
+ its(:data_month) { should eql "01" }
181
178
  end
182
179
 
183
- context 'when the value is not supplied' do
184
- before(:each) { Date.stub(:today) { Date.new(2014, 01, 01) } }
185
- let(:options) { { } }
180
+ context "when the value is not supplied" do
181
+ before(:each) { Date.stub(:today) { Date.new(2014, 0o1, 0o1) } }
182
+ let(:options) { {} }
186
183
 
187
- context 'and Suretax is configured for production' do
184
+ context "and Suretax is configured for production" do
188
185
  before(:each) { Suretax.configuration.stub(:test?).and_return(false) }
189
- its(:data_year) { should eql Date.today.strftime('%Y') }
186
+ its(:data_year) { should eql Date.today.strftime("%Y") }
190
187
  end
191
188
 
192
- context 'and Suretax is not configured for production' do
189
+ context "and Suretax is not configured for production" do
193
190
  before(:each) { Suretax.configuration.stub(:test?).and_return(true) }
194
- its(:data_year) { should eql Date.today.prev_month.strftime('%Y') }
191
+ its(:data_year) { should eql Date.today.prev_month.strftime("%Y") }
195
192
  end
196
193
  end
197
194
  end
198
195
  end
199
-
@@ -1,7 +1,6 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Suretax API Request Validations" do
4
-
5
4
  let(:request) do
6
5
  Suretax::Api::Request.new(suretax_valid_request_params)
7
6
  end
@@ -16,158 +15,158 @@ describe "Suretax API Request Validations" do
16
15
  context "when invalid" do
17
16
  it "shows no errors" do
18
17
  item = Suretax::Api::RequestItem.new(suretax_valid_request_item_params)
19
- item.customer_number = 'a' * 9
20
- item.regulatory_code = 11111
18
+ item.customer_number = "a" * 9
19
+ item.regulatory_code = 11_111
21
20
  request.items = [item]
22
21
 
23
22
  expect(request.errors.any?).to eq true
24
23
  expect(request.errors.messages).to \
25
- eq([%Q{Invalid items: ["Invalid customer_number: aaaaaaaaa, Invalid regulatory_code: 11111"]}])
24
+ eq([%(Invalid items: ["Invalid customer_number: aaaaaaaaa, Invalid regulatory_code: 11111"])])
26
25
  end
27
26
  end
28
27
  end
29
28
 
30
- describe '#client_number' do
31
- context 'when present' do
32
- it 'can be ten characters or less' do
33
- request.client_number = '1234567890'
29
+ describe "#client_number" do
30
+ context "when present" do
31
+ it "can be ten characters or less" do
32
+ request.client_number = "1234567890"
34
33
  expect(request.errors.any?).to eq false
35
34
 
36
- request.client_number = '12345678901'
35
+ request.client_number = "12345678901"
37
36
  expect(request.errors.any?).to eq true
38
- expect(request.errors.messages).to eq [%Q{Invalid client_number: 12345678901}]
37
+ expect(request.errors.messages).to eq [%(Invalid client_number: 12345678901)]
39
38
  end
40
39
 
41
- it 'must be a number' do
42
- request.client_number = '1'
40
+ it "must be a number" do
41
+ request.client_number = "1"
43
42
  expect(request.errors.any?).to eq false
44
43
 
45
- request.client_number = 'abcdefghij'
44
+ request.client_number = "abcdefghij"
46
45
  expect(request.errors.any?).to eq true
47
- expect(request.errors.messages).to eq [%Q{Invalid client_number: abcdefghij}]
46
+ expect(request.errors.messages).to eq [%(Invalid client_number: abcdefghij)]
48
47
  end
49
48
  end
50
49
 
51
- context 'when absent' do
52
- it 'should fail validation' do
50
+ context "when absent" do
51
+ it "should fail validation" do
53
52
  request.client_number = nil
54
53
  expect(request.errors.any?).to eq true
55
- expect(request.errors.messages).to eq [%Q{Invalid client_number: nil}]
54
+ expect(request.errors.messages).to eq [%(Invalid client_number: nil)]
56
55
  end
57
56
  end
58
57
  end
59
58
 
60
- describe '#business_unit' do
61
- context 'when present' do
62
- it 'can be blank' do
59
+ describe "#business_unit" do
60
+ context "when present" do
61
+ it "can be blank" do
63
62
  request.business_unit = nil
64
63
  expect(request.errors.any?).to eq false
65
64
 
66
- request.business_unit = ''
65
+ request.business_unit = ""
67
66
  expect(request.errors.any?).to eq false
68
67
  end
69
68
 
70
- it 'can be 20 characters or less' do
71
- request.business_unit = 'a' * 5
69
+ it "can be 20 characters or less" do
70
+ request.business_unit = "a" * 5
72
71
  expect(request.errors.any?).to eq false
73
72
 
74
- request.business_unit = 'a' * 20
73
+ request.business_unit = "a" * 20
75
74
  expect(request.errors.any?).to eq false
76
75
 
77
- request.business_unit = 'a' * 21
76
+ request.business_unit = "a" * 21
78
77
  expect(request.errors.any?).to eq true
79
- expect(request.errors.messages).to eq [%Q{Invalid business_unit: #{'a' * 21}}]
78
+ expect(request.errors.messages).to eq [%(Invalid business_unit: #{'a' * 21})]
80
79
  end
81
80
 
82
- it 'must be alphanumeric' do
83
- request.business_unit = 'aa124'
81
+ it "must be alphanumeric" do
82
+ request.business_unit = "aa124"
84
83
  expect(request.errors.any?).to eq false
85
84
 
86
- request.business_unit = 'a_34'
85
+ request.business_unit = "a_34"
87
86
  expect(request.errors.any?).to eq true
88
- expect(request.errors.messages).to eq [%Q{Invalid business_unit: a_34}]
87
+ expect(request.errors.messages).to eq [%(Invalid business_unit: a_34)]
89
88
  end
90
89
  end
91
90
 
92
- context 'when absent' do
93
- it 'should pass validation' do
91
+ context "when absent" do
92
+ it "should pass validation" do
94
93
  request.business_unit = nil
95
94
  expect(request.errors.any?).to eq false
96
95
  end
97
96
  end
98
97
  end
99
98
 
100
- describe '#validation_key' do
101
- context 'when present' do
102
- it 'must be a maximum of 36 characters' do
103
- request.validation_key = 'a' * 36
99
+ describe "#validation_key" do
100
+ context "when present" do
101
+ it "must be a maximum of 36 characters" do
102
+ request.validation_key = "a" * 36
104
103
  expect(request.errors.any?).to eq false
105
104
 
106
- request.validation_key = 'a' * 37
105
+ request.validation_key = "a" * 37
107
106
  expect(request.errors.any?).to eq true
108
- expect(request.errors.messages).to eq [%Q{Invalid validation_key: #{'a' * 37}}]
107
+ expect(request.errors.messages).to eq [%(Invalid validation_key: #{'a' * 37})]
109
108
  end
110
109
  end
111
110
 
112
- context 'when absent' do
113
- it 'should fail validation' do
111
+ context "when absent" do
112
+ it "should fail validation" do
114
113
  request.validation_key = nil
115
114
  expect(request.errors.any?).to eq true
116
- expect(request.errors.messages).to eq [%Q{Invalid validation_key: nil}]
115
+ expect(request.errors.messages).to eq [%(Invalid validation_key: nil)]
117
116
  end
118
117
  end
119
118
  end
120
119
 
121
- describe '#data_year' do
122
- context 'when present' do
123
- it 'must be a number' do
124
- request.data_year = 'b' * 4
120
+ describe "#data_year" do
121
+ context "when present" do
122
+ it "must be a number" do
123
+ request.data_year = "b" * 4
125
124
  expect(request.errors.any?).to eq true
126
- expect(request.errors.messages).to eq [%Q{Invalid data_year: #{'b' * 4}}]
125
+ expect(request.errors.messages).to eq [%(Invalid data_year: #{'b' * 4})]
127
126
 
128
- request.data_year = '-' * 4
127
+ request.data_year = "-" * 4
129
128
  expect(request.errors.any?).to eq true
130
- expect(request.errors.messages).to eq [%Q{Invalid data_year: #{'-' * 4}}]
129
+ expect(request.errors.messages).to eq [%(Invalid data_year: #{'-' * 4})]
131
130
 
132
- request.data_year = '2014'
131
+ request.data_year = "2014"
133
132
  expect(request.errors.any?).to eq false
134
133
  end
135
134
 
136
- it 'must be exactly four digits' do
137
- request.data_year = '2014'
135
+ it "must be exactly four digits" do
136
+ request.data_year = "2014"
138
137
  expect(request.errors.any?).to eq false
139
138
 
140
- request.data_year = '20120'
139
+ request.data_year = "20120"
141
140
  expect(request.errors.any?).to eq true
142
- expect(request.errors.messages).to eq [%Q{Invalid data_year: 20120}]
141
+ expect(request.errors.messages).to eq [%(Invalid data_year: 20120)]
143
142
 
144
- request.data_year = '201'
143
+ request.data_year = "201"
145
144
  expect(request.errors.any?).to eq true
146
- expect(request.errors.messages).to eq [%Q{Invalid data_year: 201}]
145
+ expect(request.errors.messages).to eq [%(Invalid data_year: 201)]
147
146
  end
148
147
 
149
- it 'must be in the range 1990-2050' do
150
- request.data_year = '1989'
148
+ it "must be in the range 1990-2050" do
149
+ request.data_year = "1989"
151
150
  expect(request.errors.any?).to eq true
152
- expect(request.errors.messages).to eq [%Q{Invalid data_year: 1989}]
151
+ expect(request.errors.messages).to eq [%(Invalid data_year: 1989)]
153
152
 
154
- request.data_year = '2051'
153
+ request.data_year = "2051"
155
154
  expect(request.errors.any?).to eq true
156
- expect(request.errors.messages).to eq [%Q{Invalid data_year: 2051}]
155
+ expect(request.errors.messages).to eq [%(Invalid data_year: 2051)]
157
156
  end
158
157
  end
159
158
 
160
- context 'when absent' do
161
- it 'fails validation' do
159
+ context "when absent" do
160
+ it "fails validation" do
162
161
  request.data_year = nil
163
162
  expect(request.errors.any?).to eq true
164
- expect(request.errors.messages).to eq [%Q{Invalid data_year: nil}]
163
+ expect(request.errors.messages).to eq [%(Invalid data_year: nil)]
165
164
  end
166
165
  end
167
166
  end
168
167
 
169
- describe '#data_month' do
170
- context 'when present' do
168
+ describe "#data_month" do
169
+ context "when present" do
171
170
  it "must allow all valid month numbers" do
172
171
  (1..12).each do |month_number|
173
172
  request.data_month = month_number.to_s
@@ -185,199 +184,198 @@ describe "Suretax API Request Validations" do
185
184
  end
186
185
  end
187
186
 
188
- it 'must not allow invalid months' do
189
- request.data_month = '13'
187
+ it "must not allow invalid months" do
188
+ request.data_month = "13"
190
189
  expect(request.errors.any?).to eq true
191
- expect(request.errors.messages).to eq [%Q{Invalid data_month: 13}]
190
+ expect(request.errors.messages).to eq [%(Invalid data_month: 13)]
192
191
  end
193
192
  end
194
193
 
195
- context 'when absent' do
196
- it 'should fail validation' do
194
+ context "when absent" do
195
+ it "should fail validation" do
197
196
  request.data_month = nil
198
197
  expect(request.errors.any?).to eq true
199
- expect(request.errors.messages).to eq [%Q{Invalid data_month: nil}]
198
+ expect(request.errors.messages).to eq [%(Invalid data_month: nil)]
200
199
  end
201
200
  end
202
201
  end
203
202
 
204
- describe '#total_revenue' do
205
- context 'when present' do
206
- it 'can only be digits and the minus symbol' do
207
- request.total_revenue = 'abcdefghi.jklm'
203
+ describe "#total_revenue" do
204
+ context "when present" do
205
+ it "can only be digits and the minus symbol" do
206
+ request.total_revenue = "abcdefghi.jklm"
208
207
  expect(request.errors.any?).to eq true
209
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: abcdefghi.jklm}]
208
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: abcdefghi.jklm)]
210
209
 
211
- request.total_revenue = '+1234'
210
+ request.total_revenue = "+1234"
212
211
  expect(request.errors.any?).to eq true
213
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: +1234}]
212
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: +1234)]
214
213
  end
215
214
 
216
- it 'can have up to four decimal places' do
217
- request.total_revenue = '123456789.1234'
215
+ it "can have up to four decimal places" do
216
+ request.total_revenue = "123456789.1234"
218
217
  expect(request.errors.any?).to eq false
219
218
 
220
- request.total_revenue = '123456789.1'
219
+ request.total_revenue = "123456789.1"
221
220
  expect(request.errors.any?).to eq false
222
221
  end
223
222
 
224
- it 'must not have more than four decimal places' do
225
- request.total_revenue = '123456789.12345'
223
+ it "must not have more than four decimal places" do
224
+ request.total_revenue = "123456789.12345"
226
225
  expect(request.errors.any?).to eq true
227
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: 123456789.12345}]
226
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: 123456789.12345)]
228
227
  end
229
228
 
230
- context 'and when the value is positive' do
231
- it 'should have no symbol' do
232
- request.total_revenue = '+23456789.1234'
229
+ context "and when the value is positive" do
230
+ it "should have no symbol" do
231
+ request.total_revenue = "+23456789.1234"
233
232
  expect(request.errors.any?).to eq true
234
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: +23456789.1234}]
233
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: +23456789.1234)]
235
234
  end
236
235
 
237
- it 'can have up to nine positions to the left of the decimal' do
238
- request.total_revenue = '123456789.1234'
236
+ it "can have up to nine positions to the left of the decimal" do
237
+ request.total_revenue = "123456789.1234"
239
238
  expect(request.errors.any?).to eq false
240
239
 
241
- request.total_revenue = '1.1234'
240
+ request.total_revenue = "1.1234"
242
241
  expect(request.errors.any?).to eq false
243
242
 
244
- request.total_revenue = '1234567890.1234'
243
+ request.total_revenue = "1234567890.1234"
245
244
  expect(request.errors.any?).to eq true
246
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: 1234567890.1234}]
245
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: 1234567890.1234)]
247
246
  end
248
247
 
249
- it 'can be a simple integer' do
250
- request.total_revenue = '1'
248
+ it "can be a simple integer" do
249
+ request.total_revenue = "1"
251
250
  expect(request.errors.any?).to eq false
252
251
  end
253
-
254
252
  end
255
253
 
256
- context 'and when the value is negative' do
254
+ context "and when the value is negative" do
257
255
  it 'should have a "minus" symbol in the first position' do
258
- request.total_revenue = '-23456789.1234'
256
+ request.total_revenue = "-23456789.1234"
259
257
  expect(request.errors.any?).to eq false
260
258
  end
261
259
 
262
- it 'must have nine positions to the left of the decimal' do
263
- request.total_revenue = '-23456789.1234'
260
+ it "must have nine positions to the left of the decimal" do
261
+ request.total_revenue = "-23456789.1234"
264
262
  expect(request.errors.any?).to eq false
265
263
  end
266
264
 
267
- it 'must not have more than nine positions to the left of the decimal' do
268
- request.total_revenue = '-234567890.1234'
265
+ it "must not have more than nine positions to the left of the decimal" do
266
+ request.total_revenue = "-234567890.1234"
269
267
  expect(request.errors.any?).to eq true
270
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: -234567890.1234}]
268
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: -234567890.1234)]
271
269
  end
272
270
  end
273
271
  end
274
272
 
275
- context 'when absent' do
276
- it 'should fail validation' do
273
+ context "when absent" do
274
+ it "should fail validation" do
277
275
  request.total_revenue = nil
278
276
  expect(request.errors.any?).to eq true
279
- expect(request.errors.messages).to eq [%Q{Invalid total_revenue: nil}]
277
+ expect(request.errors.messages).to eq [%(Invalid total_revenue: nil)]
280
278
  end
281
279
  end
282
280
  end
283
281
 
284
- describe '#client_tracking' do
285
- context 'when present' do
286
- it 'must not be longer than 100 characters' do
287
- request.client_tracking = 'a' * 101
282
+ describe "#client_tracking" do
283
+ context "when present" do
284
+ it "must not be longer than 100 characters" do
285
+ request.client_tracking = "a" * 101
288
286
  expect(request.errors.any?).to eq true
289
- expect(request.errors.messages).to eq [%Q{Invalid client_tracking: #{'a' * 101}}]
287
+ expect(request.errors.messages).to eq [%(Invalid client_tracking: #{'a' * 101})]
290
288
  end
291
289
  end
292
290
 
293
- context 'when absent' do
294
- it 'should pass validation' do
291
+ context "when absent" do
292
+ it "should pass validation" do
295
293
  request.client_tracking = nil
296
294
  expect(request.errors.any?).to eq false
297
295
  end
298
296
  end
299
297
  end
300
298
 
301
- describe '#return_file_code' do
302
- context 'when present' do
303
- it 'must be a valid code' do
299
+ describe "#return_file_code" do
300
+ context "when present" do
301
+ it "must be a valid code" do
304
302
  request.return_file_code = 0
305
303
  expect(request.errors.any?).to eq false
306
304
 
307
- request.return_file_code = 'Q'
305
+ request.return_file_code = "Q"
308
306
  expect(request.errors.any?).to eq false
309
307
  end
310
308
 
311
- it 'cannot be any other value' do
312
- request.return_file_code = 'a'
309
+ it "cannot be any other value" do
310
+ request.return_file_code = "a"
313
311
  expect(request.errors.any?).to eq true
314
- expect(request.errors.messages).to eq [%Q{Invalid return_file_code: a}]
312
+ expect(request.errors.messages).to eq [%(Invalid return_file_code: a)]
315
313
 
316
314
  request.return_file_code = 1
317
315
  expect(request.errors.any?).to eq true
318
- expect(request.errors.messages).to eq [%Q{Invalid return_file_code: 1}]
316
+ expect(request.errors.messages).to eq [%(Invalid return_file_code: 1)]
319
317
 
320
- request.return_file_code = '_'
318
+ request.return_file_code = "_"
321
319
  expect(request.errors.any?).to eq true
322
- expect(request.errors.messages).to eq [%Q{Invalid return_file_code: _}]
320
+ expect(request.errors.messages).to eq [%(Invalid return_file_code: _)]
323
321
  end
324
322
  end
325
323
 
326
- context 'when absent' do
327
- it 'should fail validation' do
324
+ context "when absent" do
325
+ it "should fail validation" do
328
326
  request.return_file_code = nil
329
327
  expect(request.errors.any?).to eq true
330
- expect(request.errors.messages).to eq [%Q{Invalid return_file_code: nil}]
328
+ expect(request.errors.messages).to eq [%(Invalid return_file_code: nil)]
331
329
  end
332
330
  end
333
331
  end
334
332
 
335
- describe '#response_group' do
336
- context 'when present' do
333
+ describe "#response_group" do
334
+ context "when present" do
337
335
  it "must be a valid code" do
338
- %w{00 01 02 03}.each do |code|
336
+ %w[00 01 02 03].each do |code|
339
337
  request.response_group = code
340
338
  expect(request.errors.any?).to eq false
341
339
  end
342
340
 
343
- %w{a 04 _}.each do |wrong_value|
341
+ %w[a 04 _].each do |wrong_value|
344
342
  request.response_group = wrong_value
345
343
  expect(request.errors.any?).to eq true
346
- expect(request.errors.messages).to eq [%Q{Invalid response_group: #{wrong_value}}]
344
+ expect(request.errors.messages).to eq [%(Invalid response_group: #{wrong_value})]
347
345
  end
348
346
  end
349
347
  end
350
348
 
351
- context 'when absent' do
352
- it 'should fail validation' do
349
+ context "when absent" do
350
+ it "should fail validation" do
353
351
  request.response_group = nil
354
352
  expect(request.errors.any?).to eq true
355
- expect(request.errors.messages).to eq [%Q{Invalid response_group: nil}]
353
+ expect(request.errors.messages).to eq [%(Invalid response_group: nil)]
356
354
  end
357
355
  end
358
356
  end
359
357
 
360
- describe '#response_type' do
361
- context 'when present' do
358
+ describe "#response_type" do
359
+ context "when present" do
362
360
  it "must be a valid code combination'" do
363
- %w{D1 D9 S1 S9}.each do |type|
361
+ %w[D1 D9 S1 S9].each do |type|
364
362
  request.response_type = type
365
363
  expect(request.errors.any?).to eq false
366
364
  end
367
365
 
368
- %w{a D0 S10 _}.each do |bad_type|
366
+ %w[a D0 S10 _].each do |bad_type|
369
367
  request.response_type = bad_type
370
368
  expect(request.errors.any?).to eq true
371
- expect(request.errors.messages).to eq [%Q{Invalid response_type: #{bad_type}}]
369
+ expect(request.errors.messages).to eq [%(Invalid response_type: #{bad_type})]
372
370
  end
373
371
  end
374
372
  end
375
373
 
376
- context 'when absent' do
377
- it 'should fail validation' do
374
+ context "when absent" do
375
+ it "should fail validation" do
378
376
  request.response_type = nil
379
377
  expect(request.errors.any?).to eq true
380
- expect(request.errors.messages).to eq [%Q{Invalid response_type: nil}]
378
+ expect(request.errors.messages).to eq [%(Invalid response_type: nil)]
381
379
  end
382
380
  end
383
381
  end