taxamo 1.0.5
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.
- checksums.yaml +7 -0
- data/Gemfile +7 -0
- data/LICENSE +11 -0
- data/README.md +120 -0
- data/Rakefile +7 -0
- data/lib/monkey.rb +90 -0
- data/lib/swagger.rb +93 -0
- data/lib/swagger/configuration.rb +21 -0
- data/lib/swagger/request.rb +198 -0
- data/lib/swagger/response.rb +87 -0
- data/lib/taxamo.rb +999 -0
- data/lib/taxamo/models/additionalcurrencies.rb +62 -0
- data/lib/taxamo/models/additionalcurrency.rb +82 -0
- data/lib/taxamo/models/bycountry.rb +77 -0
- data/lib/taxamo/models/bystatus.rb +69 -0
- data/lib/taxamo/models/bytaxationtype.rb +82 -0
- data/lib/taxamo/models/c.rb +77 -0
- data/lib/taxamo/models/calculatesimpletaxout.rb +62 -0
- data/lib/taxamo/models/calculatetaxin.rb +62 -0
- data/lib/taxamo/models/calculatetaxlocationout.rb +97 -0
- data/lib/taxamo/models/calculatetaxout.rb +62 -0
- data/lib/taxamo/models/canceltransactionout.rb +62 -0
- data/lib/taxamo/models/capturepaymentout.rb +62 -0
- data/lib/taxamo/models/confirmtransactionin.rb +62 -0
- data/lib/taxamo/models/confirmtransactionout.rb +62 -0
- data/lib/taxamo/models/countries.rb +112 -0
- data/lib/taxamo/models/country.rb +114 -0
- data/lib/taxamo/models/countryschema.rb +114 -0
- data/lib/taxamo/models/createpaymentin.rb +72 -0
- data/lib/taxamo/models/createpaymentout.rb +62 -0
- data/lib/taxamo/models/createrefundin.rb +77 -0
- data/lib/taxamo/models/createrefundout.rb +77 -0
- data/lib/taxamo/models/createsmstokenin.rb +67 -0
- data/lib/taxamo/models/createsmstokenout.rb +62 -0
- data/lib/taxamo/models/createtransactionin.rb +67 -0
- data/lib/taxamo/models/createtransactionout.rb +62 -0
- data/lib/taxamo/models/currencyschema.rb +82 -0
- data/lib/taxamo/models/customfields.rb +67 -0
- data/lib/taxamo/models/emailinvoicein.rb +62 -0
- data/lib/taxamo/models/emailinvoiceout.rb +62 -0
- data/lib/taxamo/models/evidence.rb +112 -0
- data/lib/taxamo/models/evidenceschema.rb +77 -0
- data/lib/taxamo/models/getcountriesdictout.rb +63 -0
- data/lib/taxamo/models/getcurrenciesdictout.rb +63 -0
- data/lib/taxamo/models/getdailysettlementstatsout.rb +63 -0
- data/lib/taxamo/models/getproducttypesdictout.rb +63 -0
- data/lib/taxamo/models/getrefundsout.rb +63 -0
- data/lib/taxamo/models/getsettlementout.rb +83 -0
- data/lib/taxamo/models/getsettlementstatsbycountryout.rb +63 -0
- data/lib/taxamo/models/getsettlementstatsbytaxationtypeout.rb +62 -0
- data/lib/taxamo/models/getsettlementsummaryout.rb +62 -0
- data/lib/taxamo/models/gettransactionout.rb +62 -0
- data/lib/taxamo/models/gettransactionsstatsout.rb +62 -0
- data/lib/taxamo/models/inputtransaction.rb +184 -0
- data/lib/taxamo/models/inputtransactionline.rb +133 -0
- data/lib/taxamo/models/inputtransactionupdate.rb +184 -0
- data/lib/taxamo/models/invoiceaddress.rb +97 -0
- data/lib/taxamo/models/listpaymentsout.rb +63 -0
- data/lib/taxamo/models/listtransactionsout.rb +63 -0
- data/lib/taxamo/models/locategivenipout.rb +72 -0
- data/lib/taxamo/models/locatemyipout.rb +72 -0
- data/lib/taxamo/models/n.rb +77 -0
- data/lib/taxamo/models/payments.rb +72 -0
- data/lib/taxamo/models/producttypeschema.rb +62 -0
- data/lib/taxamo/models/report.rb +92 -0
- data/lib/taxamo/models/settlementdailystatsschema.rb +102 -0
- data/lib/taxamo/models/summary.rb +87 -0
- data/lib/taxamo/models/transaction.rb +279 -0
- data/lib/taxamo/models/transactionlines.rb +163 -0
- data/lib/taxamo/models/transactions.rb +279 -0
- data/lib/taxamo/models/unconfirmtransactionin.rb +62 -0
- data/lib/taxamo/models/unconfirmtransactionout.rb +62 -0
- data/lib/taxamo/models/updatetransactionin.rb +62 -0
- data/lib/taxamo/models/updatetransactionout.rb +62 -0
- data/lib/taxamo/models/validatetaxnumberout.rb +77 -0
- data/lib/taxamo/models/verifysmstokenout.rb +62 -0
- data/lib/taxamo/version.rb +17 -0
- data/taxamo.gemspec +31 -0
- data/test/taxamo/connectivity_test.rb +55 -0
- data/test/taxamo/tax_test.rb +147 -0
- data/test/taxamo/transactions_api_test.rb +308 -0
- metadata +226 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
# Copyright 2014-2015 Taxamo, Ltd.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
class UpdateTransactionOut
|
14
|
+
attr_accessor :transaction
|
15
|
+
|
16
|
+
# :internal => :external
|
17
|
+
def self.attribute_map
|
18
|
+
{
|
19
|
+
:transaction => :transaction
|
20
|
+
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(attributes = {})
|
25
|
+
return if attributes.empty?
|
26
|
+
# Morph attribute keys into undescored rubyish style
|
27
|
+
if attributes["transaction"]
|
28
|
+
@transaction = Transaction.new(attributes["transaction"])
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_body
|
36
|
+
body = {}
|
37
|
+
self.class.attribute_map.each_pair do |key, value|
|
38
|
+
v = self.send(key)
|
39
|
+
unless v.nil?
|
40
|
+
if v.is_a?(Array)
|
41
|
+
array = Array.new
|
42
|
+
v.each do |item|
|
43
|
+
if item.respond_to?("to_body".to_sym)
|
44
|
+
array.push item.to_body
|
45
|
+
else
|
46
|
+
array.push item
|
47
|
+
end
|
48
|
+
end
|
49
|
+
body[value] = array
|
50
|
+
else
|
51
|
+
if v.respond_to?("to_body".to_sym)
|
52
|
+
body[value] = v.to_body
|
53
|
+
else
|
54
|
+
body[value] = v
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
body
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# Copyright 2014-2015 Taxamo, Ltd.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
class ValidateTaxNumberOut
|
14
|
+
attr_accessor :tax_deducted, :buyer_tax_number, :buyer_tax_number_valid, :billing_country_code
|
15
|
+
|
16
|
+
# :internal => :external
|
17
|
+
def self.attribute_map
|
18
|
+
{
|
19
|
+
:tax_deducted => :tax_deducted,
|
20
|
+
:buyer_tax_number => :buyer_tax_number,
|
21
|
+
:buyer_tax_number_valid => :buyer_tax_number_valid,
|
22
|
+
:billing_country_code => :billing_country_code
|
23
|
+
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def initialize(attributes = {})
|
28
|
+
return if attributes.empty?
|
29
|
+
# Morph attribute keys into undescored rubyish style
|
30
|
+
if attributes["tax_deducted"]
|
31
|
+
@tax_deducted = attributes["tax_deducted"]
|
32
|
+
|
33
|
+
end
|
34
|
+
if attributes["buyer_tax_number"]
|
35
|
+
@buyer_tax_number = attributes["buyer_tax_number"]
|
36
|
+
|
37
|
+
end
|
38
|
+
if attributes["buyer_tax_number_valid"]
|
39
|
+
@buyer_tax_number_valid = attributes["buyer_tax_number_valid"]
|
40
|
+
|
41
|
+
end
|
42
|
+
if attributes["billing_country_code"]
|
43
|
+
@billing_country_code = attributes["billing_country_code"]
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def to_body
|
51
|
+
body = {}
|
52
|
+
self.class.attribute_map.each_pair do |key, value|
|
53
|
+
v = self.send(key)
|
54
|
+
unless v.nil?
|
55
|
+
if v.is_a?(Array)
|
56
|
+
array = Array.new
|
57
|
+
v.each do |item|
|
58
|
+
if item.respond_to?("to_body".to_sym)
|
59
|
+
array.push item.to_body
|
60
|
+
else
|
61
|
+
array.push item
|
62
|
+
end
|
63
|
+
end
|
64
|
+
body[value] = array
|
65
|
+
else
|
66
|
+
if v.respond_to?("to_body".to_sym)
|
67
|
+
body[value] = v.to_body
|
68
|
+
else
|
69
|
+
body[value] = v
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
body
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# Copyright 2014-2015 Taxamo, Ltd.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
class VerifySMSTokenOut
|
14
|
+
attr_accessor :country_code
|
15
|
+
|
16
|
+
# :internal => :external
|
17
|
+
def self.attribute_map
|
18
|
+
{
|
19
|
+
:country_code => :country_code
|
20
|
+
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def initialize(attributes = {})
|
25
|
+
return if attributes.empty?
|
26
|
+
# Morph attribute keys into undescored rubyish style
|
27
|
+
if attributes["country_code"]
|
28
|
+
@country_code = attributes["country_code"]
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_body
|
36
|
+
body = {}
|
37
|
+
self.class.attribute_map.each_pair do |key, value|
|
38
|
+
v = self.send(key)
|
39
|
+
unless v.nil?
|
40
|
+
if v.is_a?(Array)
|
41
|
+
array = Array.new
|
42
|
+
v.each do |item|
|
43
|
+
if item.respond_to?("to_body".to_sym)
|
44
|
+
array.push item.to_body
|
45
|
+
else
|
46
|
+
array.push item
|
47
|
+
end
|
48
|
+
end
|
49
|
+
body[value] = array
|
50
|
+
else
|
51
|
+
if v.respond_to?("to_body".to_sym)
|
52
|
+
body[value] = v.to_body
|
53
|
+
else
|
54
|
+
body[value] = v
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
body
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Copyright 2014-2015 Taxamo, Ltd.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
module Taxamo
|
14
|
+
VERSION = "1.0.5"
|
15
|
+
end
|
16
|
+
|
17
|
+
|
data/taxamo.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
2
|
+
|
3
|
+
require 'taxamo/version'
|
4
|
+
|
5
|
+
spec = Gem::Specification.new do |s|
|
6
|
+
s.name = 'taxamo'
|
7
|
+
s.version = Taxamo::VERSION
|
8
|
+
s.summary = 'Ruby bindings for the Taxamo API'
|
9
|
+
s.description = 'Taxamo provides a real-time Software as a Service (SaaS) solution for compliance with the new 2015 EU VAT rules on the sale of e-services. http://www.taxamo.com'
|
10
|
+
s.authors = ['Tomek Lipski']
|
11
|
+
s.email = ['tom@taxamo.com']
|
12
|
+
s.homepage = 'https://www.taxamo.com/apidocs/index.html'
|
13
|
+
s.license = 'Apache'
|
14
|
+
|
15
|
+
#s.add_dependency('rest-client', '~> 1.4')
|
16
|
+
#s.add_dependency('mime-types', '>= 1.25', '< 3.0')
|
17
|
+
#s.add_dependency('json', '~> 1.8.1')
|
18
|
+
s.add_dependency('addressable', '~> 2')
|
19
|
+
s.add_dependency('typhoeus', '~> 0.6.0')
|
20
|
+
s.add_dependency('require_all', '~> 1.3.2')
|
21
|
+
|
22
|
+
s.add_development_dependency('mocha', '~> 0.13.2')
|
23
|
+
s.add_development_dependency('shoulda', '~> 3.4.0')
|
24
|
+
s.add_development_dependency('test-unit')
|
25
|
+
s.add_development_dependency('rake')
|
26
|
+
|
27
|
+
s.files = `git ls-files`.split("\n")
|
28
|
+
s.test_files = `git ls-files -- test/*`.split("\n")
|
29
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
30
|
+
s.require_paths = ['lib']
|
31
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Copyright 2014-2015 Taxamo, Ltd.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
require 'test/unit'
|
14
|
+
require 'shoulda'
|
15
|
+
require 'taxamo'
|
16
|
+
|
17
|
+
class ConnectivityTest < Test::Unit::TestCase
|
18
|
+
|
19
|
+
should 'test_validate' do
|
20
|
+
Swagger.configure do |config|
|
21
|
+
config.api_key = 'SamplePrivateTestKey1'
|
22
|
+
end
|
23
|
+
|
24
|
+
assert_raise(ValidationError) {
|
25
|
+
Taxamo.calculate_tax ({'__transaction' => {
|
26
|
+
'currency_code' => 'USD',
|
27
|
+
'buyer_ip' => '127.0.0.1',
|
28
|
+
'billing_country_code' => 'IE',
|
29
|
+
'force_country_code' => 'FR',
|
30
|
+
'transaction_lines' => [{'amount' => 200,
|
31
|
+
'custom_id' => 'line1'},
|
32
|
+
{'amount' => 100,
|
33
|
+
'product_type' => 'e-book',
|
34
|
+
'custom_id' => 'line2'}]}}) }
|
35
|
+
end
|
36
|
+
|
37
|
+
should 'test_auth' do
|
38
|
+
Swagger.configure do |config|
|
39
|
+
config.api_key = 'SamplePrivateTestKey1!'
|
40
|
+
end
|
41
|
+
assert_raise(AuthenticationError) {
|
42
|
+
Taxamo.calculate_tax ({'__transaction' => {
|
43
|
+
'currency_code' => 'USD',
|
44
|
+
'buyer_ip' => '127.0.0.1',
|
45
|
+
'billing_country_code' => 'IE',
|
46
|
+
'force_country_code' => 'FR',
|
47
|
+
'transaction_lines' => [{'amount' => 200,
|
48
|
+
'custom_id' => 'line1'},
|
49
|
+
{'amount' => 100,
|
50
|
+
'product_type' => 'e-book',
|
51
|
+
'custom_id' => 'line2'}]}})}
|
52
|
+
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
# Copyright 2014-2015 Taxamo, Ltd.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
require 'test/unit'
|
14
|
+
require 'shoulda'
|
15
|
+
require 'taxamo'
|
16
|
+
|
17
|
+
|
18
|
+
class TaxTest < Test::Unit::TestCase
|
19
|
+
|
20
|
+
should 'basic tax calculation works' do
|
21
|
+
|
22
|
+
Swagger.configure do |config|
|
23
|
+
config.api_key = 'SamplePrivateTestKey1'
|
24
|
+
end
|
25
|
+
resp = Taxamo.calculate_tax(
|
26
|
+
{'transaction' => {
|
27
|
+
'currency_code' => 'USD',
|
28
|
+
'buyer_ip' => '127.0.0.1',
|
29
|
+
'billing_country_code' => 'IE',
|
30
|
+
'force_country_code' => 'FR',
|
31
|
+
'transaction_lines' => [{'amount' => 200,
|
32
|
+
'custom_id' => 'line1'},
|
33
|
+
{'amount' => 100,
|
34
|
+
'product_type' => 'e-book',
|
35
|
+
'custom_id' => 'line2'}]}})
|
36
|
+
|
37
|
+
assert_equal resp.transaction.countries.detected.code, 'IE'
|
38
|
+
assert_equal resp.transaction.amount, 300
|
39
|
+
assert_equal resp.transaction.tax_amount, 45.5
|
40
|
+
assert_equal resp.transaction.total_amount, 345.5
|
41
|
+
|
42
|
+
assert_equal resp.transaction.transaction_lines[0].custom_id, 'line1'
|
43
|
+
assert_equal resp.transaction.transaction_lines[0].tax_rate, 20
|
44
|
+
assert_equal resp.transaction.transaction_lines[0].tax_amount, 40
|
45
|
+
assert_equal resp.transaction.transaction_lines[1].custom_id, 'line2'
|
46
|
+
assert_equal resp.transaction.transaction_lines[1].tax_rate, 5.5
|
47
|
+
assert_equal resp.transaction.transaction_lines[1].tax_amount, 5.5
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
should 'data model works' do
|
52
|
+
|
53
|
+
Swagger.configure do |config|
|
54
|
+
config.api_key = 'SamplePrivateTestKey1'
|
55
|
+
end
|
56
|
+
|
57
|
+
taxIn = CalculateTaxIn.new
|
58
|
+
taxIn.transaction = InputTransaction.new
|
59
|
+
taxIn.transaction.currency_code = 'USD'
|
60
|
+
taxIn.transaction.buyer_ip = '127.0.0.1'
|
61
|
+
taxIn.transaction.billing_country_code = 'IE'
|
62
|
+
taxIn.transaction.force_country_code = 'FR'
|
63
|
+
taxIn.transaction.transaction_lines = [InputTransactionLine.new, InputTransactionLine.new]
|
64
|
+
taxIn.transaction.transaction_lines[0].amount = 200
|
65
|
+
taxIn.transaction.transaction_lines[0].custom_id = 'line1'
|
66
|
+
taxIn.transaction.transaction_lines[1].amount = 100
|
67
|
+
taxIn.transaction.transaction_lines[1].custom_id = 'line2'
|
68
|
+
taxIn.transaction.transaction_lines[1].product_type = 'e-book'
|
69
|
+
|
70
|
+
resp = Taxamo.calculate_tax(taxIn)
|
71
|
+
|
72
|
+
assert_equal resp.transaction.countries.detected.code, 'IE'
|
73
|
+
assert_equal resp.transaction.amount, 300
|
74
|
+
assert_equal resp.transaction.tax_amount, 45.5
|
75
|
+
assert_equal resp.transaction.total_amount, 345.5
|
76
|
+
|
77
|
+
assert_equal resp.transaction.transaction_lines[0].custom_id, 'line1'
|
78
|
+
assert_equal resp.transaction.transaction_lines[0].tax_rate, 20
|
79
|
+
assert_equal resp.transaction.transaction_lines[0].tax_amount, 40
|
80
|
+
assert_equal resp.transaction.transaction_lines[1].custom_id, 'line2'
|
81
|
+
assert_equal resp.transaction.transaction_lines[1].tax_rate, 5.5
|
82
|
+
assert_equal resp.transaction.transaction_lines[1].tax_amount, 5.5
|
83
|
+
end
|
84
|
+
|
85
|
+
should 'test simple calculate' do
|
86
|
+
|
87
|
+
Swagger.configure do |config|
|
88
|
+
config.api_key = 'SamplePrivateTestKey1'
|
89
|
+
end
|
90
|
+
resp = Taxamo.calculate_simple_tax(nil,
|
91
|
+
nil,
|
92
|
+
'e-book', #product_type
|
93
|
+
'FR', #force_country_code
|
94
|
+
nil,
|
95
|
+
nil,
|
96
|
+
nil,
|
97
|
+
nil,
|
98
|
+
100, #amount
|
99
|
+
'IE', #billing_country_code
|
100
|
+
'USD', #currency_code
|
101
|
+
nil)
|
102
|
+
|
103
|
+
assert_equal resp.transaction.tax_country_code, 'FR'
|
104
|
+
assert_equal resp.transaction.amount, 100
|
105
|
+
assert_equal resp.transaction.tax_amount, 5.5
|
106
|
+
assert_equal resp.transaction.total_amount, 105.5
|
107
|
+
|
108
|
+
assert_equal resp.transaction.transaction_lines[0].tax_rate, 5.5
|
109
|
+
assert_equal resp.transaction.transaction_lines[0].tax_rate, 5.5
|
110
|
+
assert_equal resp.transaction.transaction_lines[0].total_amount, 105.5
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
should 'test validate tax number' do
|
115
|
+
|
116
|
+
Swagger.configure do |config|
|
117
|
+
config.api_key = 'SamplePrivateTestKey1'
|
118
|
+
end
|
119
|
+
resp = Taxamo.validate_tax_number(nil, 'IE6388047V')
|
120
|
+
assert_equal resp.tax_deducted, true
|
121
|
+
assert_equal resp.billing_country_code, 'IE'
|
122
|
+
|
123
|
+
resp = Taxamo.validate_tax_number('IE', '6388047V')
|
124
|
+
assert_equal resp.tax_deducted, true
|
125
|
+
assert_equal resp.billing_country_code, 'IE'
|
126
|
+
|
127
|
+
resp = Taxamo.validate_tax_number('IE', '6388047V12121')
|
128
|
+
|
129
|
+
assert_equal resp.tax_deducted, nil
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
should 'test_location_calculate' do
|
134
|
+
|
135
|
+
Swagger.configure do |config|
|
136
|
+
config.api_key = 'SamplePrivateTestKey1'
|
137
|
+
end
|
138
|
+
|
139
|
+
resp = Taxamo.calculate_tax_location('BE', '424242')
|
140
|
+
assert_equal resp.tax_country_code, 'BE'
|
141
|
+
assert_equal resp.tax_supported, true
|
142
|
+
assert_equal resp.countries.detected.code, 'BE'
|
143
|
+
assert_equal resp.countries.by_billing.code, 'BE'
|
144
|
+
assert_equal resp.countries.by_cc.code, 'BE'
|
145
|
+
|
146
|
+
end
|
147
|
+
end
|