Avatax_TaxService 1.0.14 → 2.0.1

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.
data/spec/posttax_spec.rb CHANGED
@@ -1,171 +1,171 @@
1
- require "spec_helper"
2
- require "date"
3
-
4
- describe "PostTax" do
5
- before :each do
6
- credentials = YAML::load(File.open('credentials.yml'))
7
- @creds = {:username => credentials['username'],
8
- :password => credentials['password'],
9
- :clientname => credentials['clientname'],
10
- :use_production_url => credentials['production']}
11
- @svc = AvaTax::TaxService.new(@creds)
12
- @get_tax_request = {
13
- :doctype => "SalesInvoice",
14
- :commit => false,
15
- :detaillevel => "Tax",
16
- :docdate=>DateTime.now.strftime("%Y-%m-%d"),
17
- :customercode => "CUST123",
18
- :origincode => "456",
19
- :destinationcode => "456",
20
- :addresses=>[{
21
- :addresscode=>"456",
22
- :line1=>"7070 West Arlington Drive",
23
- :postalcode=>"80123",
24
- :country=>"US",
25
- }],
26
- :lines=>[{
27
- :no=>"1",
28
- :itemcode=>"Canoe",
29
- :qty=>"1",
30
- :amount=>"300.43",
31
- :description=>"Blue canoe",
32
- }]}
33
-
34
- @get_tax_result = @svc.gettax(@get_tax_request)
35
-
36
- @request_required = {
37
- :companycode => @get_tax_result[:company_code],
38
- :doctype => @get_tax_result[:doc_type],
39
- :doccode => @get_tax_result[:doc_code],
40
- :commit => false,
41
- :docdate => @get_tax_result[:doc_date],
42
- :totalamount => @get_tax_result[:total_amount],
43
- :totaltax => @get_tax_result[:total_tax],
44
-
45
- }
46
- @request_optional = {
47
- :docid => @get_tax_result[:doc_id],
48
- :newdoccode => "new doc code: "+ @get_tax_result[:doc_code],
49
- }
50
-
51
-
52
- end
53
-
54
- describe "returns a meaningful" do
55
- it "error when URL is missing" do
56
- @creds[:use_production_url] = nil
57
- @service = AvaTax::TaxService.new(@creds)
58
- @service.posttax(@request_required)[:result_code].should eql "Success"
59
- end
60
- it "success when URL is specified" do
61
- @creds[:use_production_url] = false
62
- @service = AvaTax::TaxService.new(@creds)
63
- @service.posttax(@request_required)[:result_code].should eql "Success"
64
- end
65
- it "error when username is missing" do
66
- @creds[:username] = nil
67
- @service = AvaTax::TaxService.new(@creds)
68
- @service.posttax(@request_required)[:result_code].should eql "Error"
69
- end
70
- it "error when password is omitted" do
71
- @creds[:password] = nil
72
- @service = AvaTax::TaxService.new(@creds)
73
- @service.posttax(@request_required)[:result_code].should eql "Error"
74
- end
75
- it "success when clientname is omitted" do
76
- @creds[:clientname] = nil
77
- @service = AvaTax::TaxService.new(@creds)
78
- @service.posttax(@request_required)[:result_code].should eql "Success"
79
- end
80
- end
81
-
82
- describe "has consistent formatting for" do
83
- it "server-side errors" do
84
- @creds[:password] = nil
85
- @service = AvaTax::TaxService.new(@creds)
86
- @result = @service.posttax(@request_required)
87
- @result[:result_code].should eql "Error" and
88
- @result[:messages].kind_of?(Array).should eql true and
89
- @result[:messages][0].should include(:details => "The user or account could not be authenticated.")
90
- end
91
- it "successful results" do
92
- @service = AvaTax::TaxService.new(@creds)
93
- @result = @service.posttax(@request_required)
94
- @result[:result_code].should eql "Success" and @result[:transaction_id].should_not be_nil
95
- end
96
- end
97
- describe "requests with" do
98
- it "missing required parameters fail" do
99
- @service = AvaTax::TaxService.new(@creds)
100
- @result = @service.posttax(@request_optional)
101
- @result[:result_code].should eql "Error"
102
- end
103
- it "invalid parameters ignore them" do
104
- @service = AvaTax::TaxService.new(@creds)
105
- @request_required[:bogus] = "data"
106
- @result = @service.posttax(@request_required)
107
- @result[:result_code].should eql "Success"
108
- end
109
- it "missing optional parameters succeed" do
110
- @service = AvaTax::TaxService.new(@creds)
111
- @result = @service.posttax(@request_required)
112
- @result[:result_code].should eql "Success"
113
- end
114
- it "all parameters succeed" do
115
- @service = AvaTax::TaxService.new(@creds)
116
- @result = @service.posttax(@request_required.merge(@request_optional))
117
- @result[:result_code].should eql "Success"
118
- end
119
- end
120
- describe "workflow" do
121
- it "should succeed on tax amount mismatch" do
122
- @request_required[:totaltax] = @request_required[:totalamount]
123
- @result = @svc.posttax(@request_required)
124
- @history_request = {
125
- :doccode => @request_required[:doccode],
126
- :companycode => @request_required[:companycode],
127
- :doctype => @request_required[:doctype],
128
- }
129
- @history_result = @svc.gettaxhistory(@history_request)
130
- @result[:result_code].should eql "Warning" and
131
- @history_result[:get_tax_result][:doc_status].should eql "Posted"
132
- end
133
- it "should succeed on total amount mismatch" do
134
- @request_required[:totalamount] = @request_required[:totaltax]
135
- @result = @svc.posttax(@request_required)
136
- @history_request = {
137
- :doccode => @request_required[:doccode],
138
- :companycode => @request_required[:companycode],
139
- :doctype => @request_required[:doctype],
140
- }
141
- @history_result = @svc.gettaxhistory(@history_request)
142
- @result[:result_code].should eql "Warning" and
143
- @history_result[:get_tax_result][:doc_status].should eql "Posted"
144
- end
145
- it "should be able to change the doc code" do
146
- @request_required[:newdoccode] = "new doc code: "+ @get_tax_result[:doc_code]
147
- @result = @svc.posttax(@request_required)
148
- @history_request = {
149
- :doccode => @request_required[:newdoccode],
150
- :companycode => @request_required[:companycode],
151
- :doctype => @request_required[:doctype],
152
- }
153
- @history_result = @svc.gettaxhistory(@history_request)
154
- @result[:result_code].should eql "Success" and
155
- @history_result[:result_code].should eql "Success"
156
- end
157
- it "should be able to commit documents" do
158
- @request_required[:commit] = true
159
- @result = @svc.posttax(@request_required)
160
- @history_request = {
161
- :doccode => @request_required[:doccode],
162
- :companycode => @request_required[:companycode],
163
- :doctype => @request_required[:doctype],
164
- }
165
- @history_result = @svc.gettaxhistory(@history_request)
166
- @result[:result_code].should eql "Success" and
167
- @history_result[:get_tax_result][:doc_status].should eql "Committed"
168
- end
169
- end
170
-
1
+ require "spec_helper"
2
+ require "date"
3
+
4
+ describe "PostTax" do
5
+ before :each do
6
+ credentials = YAML::load(File.open('credentials.yml'))
7
+ @creds = {:username => credentials['username'],
8
+ :password => credentials['password'],
9
+ :clientname => credentials['clientname'],
10
+ :use_production_url => credentials['production']}
11
+ @svc = AvaTax::TaxService.new(@creds)
12
+ @get_tax_request = {
13
+ :doctype => "SalesInvoice",
14
+ :commit => false,
15
+ :detaillevel => "Tax",
16
+ :docdate=>DateTime.now.strftime("%Y-%m-%d"),
17
+ :customercode => "CUST123",
18
+ :origincode => "456",
19
+ :destinationcode => "456",
20
+ :addresses=>[{
21
+ :addresscode=>"456",
22
+ :line1=>"7070 West Arlington Drive",
23
+ :postalcode=>"80123",
24
+ :country=>"US",
25
+ }],
26
+ :lines=>[{
27
+ :no=>"1",
28
+ :itemcode=>"Canoe",
29
+ :qty=>"1",
30
+ :amount=>"300.43",
31
+ :description=>"Blue canoe",
32
+ }]}
33
+
34
+ @get_tax_result = @svc.gettax(@get_tax_request)
35
+
36
+ @request_required = {
37
+ :companycode => @get_tax_result[:company_code],
38
+ :doctype => @get_tax_result[:doc_type],
39
+ :doccode => @get_tax_result[:doc_code],
40
+ :commit => false,
41
+ :docdate => @get_tax_result[:doc_date],
42
+ :totalamount => @get_tax_result[:total_amount],
43
+ :totaltax => @get_tax_result[:total_tax],
44
+
45
+ }
46
+ @request_optional = {
47
+ :docid => @get_tax_result[:doc_id],
48
+ :newdoccode => "new doc code: "+ @get_tax_result[:doc_code],
49
+ }
50
+
51
+
52
+ end
53
+
54
+ describe "returns a meaningful" do
55
+ it "error when URL is missing" do
56
+ @creds[:use_production_url] = nil
57
+ @service = AvaTax::TaxService.new(@creds)
58
+ @service.posttax(@request_required)[:result_code].should eql "Success"
59
+ end
60
+ it "success when URL is specified" do
61
+ @creds[:use_production_url] = false
62
+ @service = AvaTax::TaxService.new(@creds)
63
+ @service.posttax(@request_required)[:result_code].should eql "Success"
64
+ end
65
+ it "error when username is missing" do
66
+ @creds[:username] = nil
67
+ @service = AvaTax::TaxService.new(@creds)
68
+ @service.posttax(@request_required)[:result_code].should eql "Error"
69
+ end
70
+ it "error when password is omitted" do
71
+ @creds[:password] = nil
72
+ @service = AvaTax::TaxService.new(@creds)
73
+ @service.posttax(@request_required)[:result_code].should eql "Error"
74
+ end
75
+ it "success when clientname is omitted" do
76
+ @creds[:clientname] = nil
77
+ @service = AvaTax::TaxService.new(@creds)
78
+ @service.posttax(@request_required)[:result_code].should eql "Success"
79
+ end
80
+ end
81
+
82
+ describe "has consistent formatting for" do
83
+ it "server-side errors" do
84
+ @creds[:password] = nil
85
+ @service = AvaTax::TaxService.new(@creds)
86
+ @result = @service.posttax(@request_required)
87
+ @result[:result_code].should eql "Error" and
88
+ @result[:messages].kind_of?(Array).should eql true and
89
+ @result[:messages][0].should include(:details => "The user or account could not be authenticated.")
90
+ end
91
+ it "successful results" do
92
+ @service = AvaTax::TaxService.new(@creds)
93
+ @result = @service.posttax(@request_required)
94
+ @result[:result_code].should eql "Success" and @result[:transaction_id].should_not be_nil
95
+ end
96
+ end
97
+ describe "requests with" do
98
+ it "missing required parameters fail" do
99
+ @service = AvaTax::TaxService.new(@creds)
100
+ @result = @service.posttax(@request_optional)
101
+ @result[:result_code].should eql "Error"
102
+ end
103
+ it "invalid parameters ignore them" do
104
+ @service = AvaTax::TaxService.new(@creds)
105
+ @request_required[:bogus] = "data"
106
+ @result = @service.posttax(@request_required)
107
+ @result[:result_code].should eql "Success"
108
+ end
109
+ it "missing optional parameters succeed" do
110
+ @service = AvaTax::TaxService.new(@creds)
111
+ @result = @service.posttax(@request_required)
112
+ @result[:result_code].should eql "Success"
113
+ end
114
+ it "all parameters succeed" do
115
+ @service = AvaTax::TaxService.new(@creds)
116
+ @result = @service.posttax(@request_required.merge(@request_optional))
117
+ @result[:result_code].should eql "Success"
118
+ end
119
+ end
120
+ describe "workflow" do
121
+ it "should succeed on tax amount mismatch" do
122
+ @request_required[:totaltax] = @request_required[:totalamount]
123
+ @result = @svc.posttax(@request_required)
124
+ @history_request = {
125
+ :doccode => @request_required[:doccode],
126
+ :companycode => @request_required[:companycode],
127
+ :doctype => @request_required[:doctype],
128
+ }
129
+ @history_result = @svc.gettaxhistory(@history_request)
130
+ @result[:result_code].should eql "Warning" and
131
+ @history_result[:get_tax_result][:doc_status].should eql "Posted"
132
+ end
133
+ it "should succeed on total amount mismatch" do
134
+ @request_required[:totalamount] = @request_required[:totaltax]
135
+ @result = @svc.posttax(@request_required)
136
+ @history_request = {
137
+ :doccode => @request_required[:doccode],
138
+ :companycode => @request_required[:companycode],
139
+ :doctype => @request_required[:doctype],
140
+ }
141
+ @history_result = @svc.gettaxhistory(@history_request)
142
+ @result[:result_code].should eql "Warning" and
143
+ @history_result[:get_tax_result][:doc_status].should eql "Posted"
144
+ end
145
+ it "should be able to change the doc code" do
146
+ @request_required[:newdoccode] = "new doc code: "+ @get_tax_result[:doc_code]
147
+ @result = @svc.posttax(@request_required)
148
+ @history_request = {
149
+ :doccode => @request_required[:newdoccode],
150
+ :companycode => @request_required[:companycode],
151
+ :doctype => @request_required[:doctype],
152
+ }
153
+ @history_result = @svc.gettaxhistory(@history_request)
154
+ @result[:result_code].should eql "Success" and
155
+ @history_result[:result_code].should eql "Success"
156
+ end
157
+ it "should be able to commit documents" do
158
+ @request_required[:commit] = true
159
+ @result = @svc.posttax(@request_required)
160
+ @history_request = {
161
+ :doccode => @request_required[:doccode],
162
+ :companycode => @request_required[:companycode],
163
+ :doctype => @request_required[:doctype],
164
+ }
165
+ @history_result = @svc.gettaxhistory(@history_request)
166
+ @result[:result_code].should eql "Success" and
167
+ @history_result[:get_tax_result][:doc_status].should eql "Committed"
168
+ end
169
+ end
170
+
171
171
  end
@@ -1,127 +1,127 @@
1
- require "spec_helper"
2
-
3
- describe "ReconcileTaxHistory" do
4
- before :each do
5
- credentials = YAML::load(File.open('credentials.yml'))
6
- @creds = {:username => credentials['username'],
7
- :password => credentials['password'],
8
- :clientname => credentials['clientname'],
9
- :use_production_url => credentials['production']}
10
- @svc = AvaTax::TaxService.new(@creds)
11
- @get_tax_request = {
12
- :companycode => credentials['companycode'],
13
- :doctype => "SalesInvoice",
14
- :commit => false,
15
- :detaillevel => "Tax",
16
- :docdate=>DateTime.now.strftime("%Y-%m-%d"),
17
- :customercode => "CUST123",
18
- :origincode => "456",
19
- :destinationcode => "456",
20
- :addresses=>[{
21
- :addresscode=>"456",
22
- :line1=>"7070 West Arlington Drive",
23
- :postalcode=>"80123",
24
- :country=>"US",
25
- }],
26
- :lines=>[{
27
- :no=>"1",
28
- :itemcode=>"Canoe",
29
- :qty=>"1",
30
- :amount=>"300.43",
31
- :description=>"Blue canoe",
32
- }]}
33
- @get_tax_result = @svc.gettax(@get_tax_request)
34
- @request_required = {
35
- :pagesize => "5",
36
- :reconciled => false,
37
- :doctype => "SalesInvoice",
38
- :docstatus => "Any",
39
- :startdate => @get_tax_result[:doc_date],
40
- :enddate => @get_tax_result[:doc_date],
41
- :lastdocid => @get_tax_result[:doc_id],
42
- :companycode => @get_tax_request[:companycode],
43
- }
44
- @request_optional = { :lastdoccode => '',} # There are no optional parameters for ReconcileTaxHistory
45
-
46
- end
47
-
48
- describe "returns a meaningful" do
49
- it "error when URL is missing" do
50
- @creds[:use_production_url] = nil
51
- @service = AvaTax::TaxService.new(@creds)
52
- @service.reconciletaxhistory(@request_required)[:result_code].should eql "Success"
53
- end
54
- it "success when URL is specified" do
55
- @creds[:use_production_url] = false
56
- @service = AvaTax::TaxService.new(@creds)
57
- @service.reconciletaxhistory(@request_required)[:result_code].should eql "Success"
58
- end
59
- it "error when username is missing" do
60
- @creds[:username] = nil
61
- @service = AvaTax::TaxService.new(@creds)
62
- @service.reconciletaxhistory(@request_required)[:result_code].should eql "Error"
63
- end
64
- it "error when password is omitted" do
65
- @creds[:password] = nil
66
- @service = AvaTax::TaxService.new(@creds)
67
- @service.reconciletaxhistory(@request_required)[:result_code].should eql "Error"
68
- end
69
- it "success when clientname is omitted" do
70
- @creds[:clientname] = nil
71
- @service = AvaTax::TaxService.new(@creds)
72
- @service.reconciletaxhistory(@request_required)[:result_code].should eql "Success"
73
- end
74
- end
75
-
76
- describe "has consistent formatting for" do
77
- it "server-side errors" do
78
- @creds[:password] = nil
79
- @service = AvaTax::TaxService.new(@creds)
80
- @result = @service.reconciletaxhistory(@request_required)
81
- @result[:result_code].should eql "Error" and
82
- @result[:messages].kind_of?(Array).should eql true and
83
- @result[:messages][0].should include(:details => "The user or account could not be authenticated.")
84
- end
85
- it "successful results" do
86
- @service = AvaTax::TaxService.new(@creds)
87
- @result = @service.reconciletaxhistory(@request_required)
88
- @result[:result_code].should eql "Success" and @result[:transaction_id].should_not be_nil
89
- end
90
- end
91
- describe "requests with" do
92
- it "missing required parameters fail" do
93
- @service = AvaTax::TaxService.new(@creds)
94
- @result = @service.reconciletaxhistory(@request_optional)
95
- @result[:result_code].should eql "Error"
96
- end
97
- it "invalid parameters ignore them" do
98
- @service = AvaTax::TaxService.new(@creds)
99
- @request_required[:bogus] = "data"
100
- @result = @service.reconciletaxhistory(@request_required)
101
- @result[:result_code].should eql "Success"
102
- end
103
- it "missing optional parameters succeed" do
104
- @service = AvaTax::TaxService.new(@creds)
105
- @result = @service.reconciletaxhistory(@request_required)
106
- @result[:result_code].should eql "Success"
107
- end
108
- it "all parameters succeed" do
109
- @service = AvaTax::TaxService.new(@creds)
110
- @result = @service.reconciletaxhistory(@request_required.merge(@request_optional))
111
- @result[:result_code].should eql "Success"
112
- end
113
- end
114
- describe "workflow" do
115
- #This method is deprecated - it currently does not pull documents or change their reconciliation status.
116
- #it "should pull unreconciled documents when requested" do
117
- # pending
118
- #end
119
- #it "should mark documents as reconciled" do
120
- # pending
121
- #end
122
- #it "should pull reconciled documents when requested" do
123
- # pending
124
- #end
125
- end
126
-
1
+ require "spec_helper"
2
+
3
+ describe "ReconcileTaxHistory" do
4
+ before :each do
5
+ credentials = YAML::load(File.open('credentials.yml'))
6
+ @creds = {:username => credentials['username'],
7
+ :password => credentials['password'],
8
+ :clientname => credentials['clientname'],
9
+ :use_production_url => credentials['production']}
10
+ @svc = AvaTax::TaxService.new(@creds)
11
+ @get_tax_request = {
12
+ :companycode => credentials['companycode'],
13
+ :doctype => "SalesInvoice",
14
+ :commit => false,
15
+ :detaillevel => "Tax",
16
+ :docdate=>DateTime.now.strftime("%Y-%m-%d"),
17
+ :customercode => "CUST123",
18
+ :origincode => "456",
19
+ :destinationcode => "456",
20
+ :addresses=>[{
21
+ :addresscode=>"456",
22
+ :line1=>"7070 West Arlington Drive",
23
+ :postalcode=>"80123",
24
+ :country=>"US",
25
+ }],
26
+ :lines=>[{
27
+ :no=>"1",
28
+ :itemcode=>"Canoe",
29
+ :qty=>"1",
30
+ :amount=>"300.43",
31
+ :description=>"Blue canoe",
32
+ }]}
33
+ @get_tax_result = @svc.gettax(@get_tax_request)
34
+ @request_required = {
35
+ :pagesize => "5",
36
+ :reconciled => false,
37
+ :doctype => "SalesInvoice",
38
+ :docstatus => "Any",
39
+ :startdate => @get_tax_result[:doc_date],
40
+ :enddate => @get_tax_result[:doc_date],
41
+ :lastdocid => @get_tax_result[:doc_id],
42
+ :companycode => @get_tax_request[:companycode],
43
+ }
44
+ @request_optional = { :lastdoccode => '',} # There are no optional parameters for ReconcileTaxHistory
45
+
46
+ end
47
+
48
+ describe "returns a meaningful" do
49
+ it "error when URL is missing" do
50
+ @creds[:use_production_url] = nil
51
+ @service = AvaTax::TaxService.new(@creds)
52
+ @service.reconciletaxhistory(@request_required)[:result_code].should eql "Success"
53
+ end
54
+ it "success when URL is specified" do
55
+ @creds[:use_production_url] = false
56
+ @service = AvaTax::TaxService.new(@creds)
57
+ @service.reconciletaxhistory(@request_required)[:result_code].should eql "Success"
58
+ end
59
+ it "error when username is missing" do
60
+ @creds[:username] = nil
61
+ @service = AvaTax::TaxService.new(@creds)
62
+ @service.reconciletaxhistory(@request_required)[:result_code].should eql "Error"
63
+ end
64
+ it "error when password is omitted" do
65
+ @creds[:password] = nil
66
+ @service = AvaTax::TaxService.new(@creds)
67
+ @service.reconciletaxhistory(@request_required)[:result_code].should eql "Error"
68
+ end
69
+ it "success when clientname is omitted" do
70
+ @creds[:clientname] = nil
71
+ @service = AvaTax::TaxService.new(@creds)
72
+ @service.reconciletaxhistory(@request_required)[:result_code].should eql "Success"
73
+ end
74
+ end
75
+
76
+ describe "has consistent formatting for" do
77
+ it "server-side errors" do
78
+ @creds[:password] = nil
79
+ @service = AvaTax::TaxService.new(@creds)
80
+ @result = @service.reconciletaxhistory(@request_required)
81
+ @result[:result_code].should eql "Error" and
82
+ @result[:messages].kind_of?(Array).should eql true and
83
+ @result[:messages][0].should include(:details => "The user or account could not be authenticated.")
84
+ end
85
+ it "successful results" do
86
+ @service = AvaTax::TaxService.new(@creds)
87
+ @result = @service.reconciletaxhistory(@request_required)
88
+ @result[:result_code].should eql "Success" and @result[:transaction_id].should_not be_nil
89
+ end
90
+ end
91
+ describe "requests with" do
92
+ it "missing required parameters fail" do
93
+ @service = AvaTax::TaxService.new(@creds)
94
+ @result = @service.reconciletaxhistory(@request_optional)
95
+ @result[:result_code].should eql "Error"
96
+ end
97
+ it "invalid parameters ignore them" do
98
+ @service = AvaTax::TaxService.new(@creds)
99
+ @request_required[:bogus] = "data"
100
+ @result = @service.reconciletaxhistory(@request_required)
101
+ @result[:result_code].should eql "Success"
102
+ end
103
+ it "missing optional parameters succeed" do
104
+ @service = AvaTax::TaxService.new(@creds)
105
+ @result = @service.reconciletaxhistory(@request_required)
106
+ @result[:result_code].should eql "Success"
107
+ end
108
+ it "all parameters succeed" do
109
+ @service = AvaTax::TaxService.new(@creds)
110
+ @result = @service.reconciletaxhistory(@request_required.merge(@request_optional))
111
+ @result[:result_code].should eql "Success"
112
+ end
113
+ end
114
+ describe "workflow" do
115
+ #This method is deprecated - it currently does not pull documents or change their reconciliation status.
116
+ #it "should pull unreconciled documents when requested" do
117
+ # pending
118
+ #end
119
+ #it "should mark documents as reconciled" do
120
+ # pending
121
+ #end
122
+ #it "should pull reconciled documents when requested" do
123
+ # pending
124
+ #end
125
+ end
126
+
127
127
  end