suretax 0.2.3 → 1.0.0

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