pensio_api 0.3.1 → 0.3.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 +5 -5
- data/.gitignore +3 -0
- data/Gemfile.lock +57 -46
- data/README.md +3 -1
- data/lib/pensio_api/chargeback_event.rb +1 -1
- data/lib/pensio_api/funding_list.rb +1 -1
- data/lib/pensio_api/funding_list_request.rb +1 -1
- data/lib/pensio_api/mixins/request_defaults.rb +7 -3
- data/lib/pensio_api/request.rb +1 -1
- data/lib/pensio_api/responses/refund.rb +1 -1
- data/lib/pensio_api/responses/reservation_capture.rb +1 -1
- data/lib/pensio_api/transaction.rb +7 -4
- data/lib/pensio_api/version.rb +3 -0
- data/lib/pensio_api.rb +2 -0
- data/pensio_api.gemspec +5 -1
- data/spec/lib/pensio_api/callback_spec.rb +3 -3
- data/spec/lib/pensio_api/chargeback_event_spec.rb +1 -1
- data/spec/lib/pensio_api/ecommerce_spec.rb +13 -2
- data/spec/lib/pensio_api/errors/bad_request_spec.rb +1 -1
- data/spec/lib/pensio_api/errors/gateway_error_spec.rb +1 -1
- data/spec/lib/pensio_api/request_spec.rb +8 -8
- data/spec/lib/pensio_api/responses/base_spec.rb +2 -2
- data/spec/lib/pensio_api/responses/chargeback_callback_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/funding_list_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/refund_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/reservation_capture_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/subscription_charge_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/subscription_failure_callback_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/success_callback_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/terminal_spec.rb +1 -1
- data/spec/lib/pensio_api/responses/transaction_spec.rb +1 -1
- data/spec/lib/pensio_api/transaction_spec.rb +4 -4
- data/spec/spec_helper.rb +0 -1
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: fc0379ef91a901e13da4c672f67acde1cec5feefa959f847939e8911309de939
|
|
4
|
+
data.tar.gz: 605225959defdcb22377bd87de79f9c943a426fe47fb95921d5099451070099d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a143826b9565bb3d2f5bf9acde830b0d514d0f9c5c37d8c121f4bf252c0461ed5bd360c6262cdd2b1497a8836c3ba8b00e672aa58a2b42c5ccf0f0f2d7b06ea6
|
|
7
|
+
data.tar.gz: 1bdefd77ffef52bb15882e29c7c837a2ee7457a5e5cc255acfb20daf0a917631984ee8e52a66069e4258ee92a426468aaecedddfd51fbd88aacd024b0acac68a
|
data/.gitignore
ADDED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
pensio_api (0.3.
|
|
4
|
+
pensio_api (0.3.4)
|
|
5
5
|
activesupport (>= 3.2)
|
|
6
6
|
httparty (>= 0.12.0)
|
|
7
7
|
multi_xml (>= 0.5.2)
|
|
@@ -9,64 +9,72 @@ PATH
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: https://www.rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
-
activesupport (
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
activesupport (5.2.4.4)
|
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
14
|
+
i18n (>= 0.7, < 2)
|
|
15
15
|
minitest (~> 5.1)
|
|
16
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
|
17
16
|
tzinfo (~> 1.1)
|
|
18
|
-
addressable (2.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
addressable (2.8.0)
|
|
18
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
19
|
+
celluloid (0.16.0)
|
|
20
|
+
timers (~> 4.0.0)
|
|
21
|
+
coderay (1.1.3)
|
|
22
|
+
concurrent-ruby (1.1.7)
|
|
23
|
+
crack (0.4.4)
|
|
24
|
+
diff-lcs (1.4.4)
|
|
25
|
+
ffi (1.13.1)
|
|
26
|
+
formatador (0.2.5)
|
|
27
27
|
guard (2.2.5)
|
|
28
28
|
formatador (>= 0.2.4)
|
|
29
29
|
listen (~> 2.1)
|
|
30
30
|
lumberjack (~> 1.0)
|
|
31
31
|
pry (>= 0.9.12)
|
|
32
32
|
thor (>= 0.18.1)
|
|
33
|
-
guard-rspec (4.2.
|
|
33
|
+
guard-rspec (4.2.10)
|
|
34
34
|
guard (~> 2.1)
|
|
35
35
|
rspec (>= 2.14, < 4.0)
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
hitimes (2.0.0)
|
|
37
|
+
httparty (0.18.1)
|
|
38
|
+
mime-types (~> 3.0)
|
|
38
39
|
multi_xml (>= 0.5.2)
|
|
39
|
-
i18n (
|
|
40
|
-
|
|
41
|
-
listen (2.
|
|
42
|
-
celluloid (
|
|
40
|
+
i18n (1.8.5)
|
|
41
|
+
concurrent-ruby (~> 1.0)
|
|
42
|
+
listen (2.10.1)
|
|
43
|
+
celluloid (~> 0.16.0)
|
|
43
44
|
rb-fsevent (>= 0.9.3)
|
|
44
45
|
rb-inotify (>= 0.9)
|
|
45
|
-
lumberjack (1.
|
|
46
|
-
method_source (0.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
rspec-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
46
|
+
lumberjack (1.2.8)
|
|
47
|
+
method_source (1.0.0)
|
|
48
|
+
mime-types (3.3.1)
|
|
49
|
+
mime-types-data (~> 3.2015)
|
|
50
|
+
mime-types-data (3.2020.0512)
|
|
51
|
+
minitest (5.14.2)
|
|
52
|
+
multi_xml (0.6.0)
|
|
53
|
+
pry (0.13.1)
|
|
54
|
+
coderay (~> 1.1)
|
|
55
|
+
method_source (~> 1.0)
|
|
56
|
+
public_suffix (4.0.6)
|
|
57
|
+
rb-fsevent (0.10.4)
|
|
58
|
+
rb-inotify (0.10.1)
|
|
59
|
+
ffi (~> 1.0)
|
|
60
|
+
rspec (3.10.0)
|
|
61
|
+
rspec-core (~> 3.10.0)
|
|
62
|
+
rspec-expectations (~> 3.10.0)
|
|
63
|
+
rspec-mocks (~> 3.10.0)
|
|
64
|
+
rspec-core (3.10.0)
|
|
65
|
+
rspec-support (~> 3.10.0)
|
|
66
|
+
rspec-expectations (3.10.0)
|
|
67
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
68
|
+
rspec-support (~> 3.10.0)
|
|
69
|
+
rspec-mocks (3.10.0)
|
|
70
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
71
|
+
rspec-support (~> 3.10.0)
|
|
72
|
+
rspec-support (3.10.0)
|
|
73
|
+
thor (1.0.1)
|
|
74
|
+
thread_safe (0.3.6)
|
|
75
|
+
timers (4.0.4)
|
|
76
|
+
hitimes
|
|
77
|
+
tzinfo (1.2.7)
|
|
70
78
|
thread_safe (~> 0.1)
|
|
71
79
|
webmock (1.16.1)
|
|
72
80
|
addressable (>= 2.2.7)
|
|
@@ -81,3 +89,6 @@ DEPENDENCIES
|
|
|
81
89
|
pensio_api!
|
|
82
90
|
rspec (>= 2.14)
|
|
83
91
|
webmock (~> 1.16.1)
|
|
92
|
+
|
|
93
|
+
BUNDLED WITH
|
|
94
|
+
2.1.4
|
data/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# PensioAPI
|
|
2
|
-
This gem covers most of the Merchant and eCommerce API functionality provided by Pensio (
|
|
2
|
+
This gem covers most of the Merchant and eCommerce API functionality provided by AltaPay, formerly Pensio (https://altapay.com).
|
|
3
|
+
|
|
4
|
+
Ruby 2.4.x or later is recommended.
|
|
3
5
|
|
|
4
6
|
## Getting Started
|
|
5
7
|
|
|
@@ -13,7 +13,7 @@ module PensioAPI
|
|
|
13
13
|
@type = @raw['Type']
|
|
14
14
|
@reason_code = @raw['ReasonCode'].to_i
|
|
15
15
|
@reason = @raw['Reason']
|
|
16
|
-
@amount = BigDecimal
|
|
16
|
+
@amount = BigDecimal(@raw['Amount'])
|
|
17
17
|
@currency = @raw['Currency']
|
|
18
18
|
@acquirer_transaction_id = @raw['AcquirerTransactionId']
|
|
19
19
|
end
|
|
@@ -20,7 +20,7 @@ module PensioAPI
|
|
|
20
20
|
@acquirer = @raw['Acquirer']
|
|
21
21
|
@funding_date = Date.parse(@raw['FundingDate'])
|
|
22
22
|
@created_at = Date.parse(@raw['CreatedDate'])
|
|
23
|
-
@download_link = @raw['DownloadLink']
|
|
23
|
+
@download_link = @raw['DownloadLink'].strip
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def download(options={})
|
|
@@ -9,7 +9,7 @@ module PensioAPI
|
|
|
9
9
|
def initialize(path, options={})
|
|
10
10
|
super(path, options)
|
|
11
11
|
|
|
12
|
-
@result = CSV.parse(@response.
|
|
12
|
+
@result = CSV.parse(@response.body, col_sep: ';', headers: true).reject(&:empty?)
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -8,7 +8,8 @@ module PensioAPI
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
HEADERS = {
|
|
11
|
-
'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8'
|
|
11
|
+
'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8',
|
|
12
|
+
'x-altapay-client-version' => "RUBYSDK/#{PensioAPI::VERSION}"
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
def initialize(path, options={})
|
|
@@ -16,7 +17,7 @@ module PensioAPI
|
|
|
16
17
|
@credentials = PensioAPI::Credentials.for(@credentials.to_sym) unless @credentials.nil? || @credentials.is_a?(PensioAPI::Credentials)
|
|
17
18
|
@credentials ||= PensioAPI::Credentials.default_credentials if PensioAPI::Credentials.credentials_mode == :default || PensioAPI::Credentials.allow_defaults
|
|
18
19
|
raise Errors::NoCredentials unless @credentials && @credentials.supplied?
|
|
19
|
-
|
|
20
|
+
|
|
20
21
|
self.class.base_uri @credentials.base_uri unless self.class.base_uri
|
|
21
22
|
|
|
22
23
|
@response = self.class.post(path, request_options(options))
|
|
@@ -25,11 +26,14 @@ module PensioAPI
|
|
|
25
26
|
private
|
|
26
27
|
|
|
27
28
|
def request_options(options)
|
|
29
|
+
timeout = options.delete(:timeout)
|
|
28
30
|
{
|
|
29
31
|
basic_auth: auth,
|
|
30
32
|
headers: (options.delete(:headers) || {}).merge(HEADERS),
|
|
31
33
|
body: options
|
|
32
|
-
}
|
|
34
|
+
}.tap do |request_options|
|
|
35
|
+
request_options[:timeout] = timeout if timeout
|
|
36
|
+
end
|
|
33
37
|
end
|
|
34
38
|
|
|
35
39
|
def auth
|
data/lib/pensio_api/request.rb
CHANGED
|
@@ -9,7 +9,7 @@ module PensioAPI
|
|
|
9
9
|
@transaction = PensioAPI::Transaction.new(
|
|
10
10
|
transactions['Transaction']
|
|
11
11
|
)
|
|
12
|
-
@refund_amount = BigDecimal
|
|
12
|
+
@refund_amount = BigDecimal(@raw['RefundedAmount'])
|
|
13
13
|
@refund_currency = @raw['RefundCurrency'].to_i
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -9,7 +9,7 @@ module PensioAPI
|
|
|
9
9
|
@transaction = PensioAPI::Transaction.new(
|
|
10
10
|
transactions['Transaction']
|
|
11
11
|
)
|
|
12
|
-
@capture_amount = BigDecimal
|
|
12
|
+
@capture_amount = BigDecimal(@raw['CaptureAmount'])
|
|
13
13
|
@capture_currency = @raw['CaptureCurrency'].to_i
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -15,6 +15,7 @@ module PensioAPI
|
|
|
15
15
|
attr_reader :order_id
|
|
16
16
|
attr_reader :merchant_currency
|
|
17
17
|
attr_reader :card_holder_currency
|
|
18
|
+
attr_reader :payment_source
|
|
18
19
|
attr_reader :chargeback_events
|
|
19
20
|
|
|
20
21
|
# constants for transaction statuses
|
|
@@ -31,10 +32,10 @@ module PensioAPI
|
|
|
31
32
|
|
|
32
33
|
@status = @raw['TransactionStatus']
|
|
33
34
|
|
|
34
|
-
@captured_amount = BigDecimal
|
|
35
|
-
@reserved_amount = BigDecimal
|
|
36
|
-
@refunded_amount = BigDecimal
|
|
37
|
-
@recurring_default_amount = BigDecimal
|
|
35
|
+
@captured_amount = BigDecimal(@raw['CapturedAmount'])
|
|
36
|
+
@reserved_amount = BigDecimal(@raw['ReservedAmount'])
|
|
37
|
+
@refunded_amount = BigDecimal(@raw['RefundedAmount'])
|
|
38
|
+
@recurring_default_amount = BigDecimal(@raw['RecurringDefaultAmount'])
|
|
38
39
|
|
|
39
40
|
@card_status = @raw['CardStatus']
|
|
40
41
|
@card_token = @raw['CreditCardToken']
|
|
@@ -45,6 +46,8 @@ module PensioAPI
|
|
|
45
46
|
@merchant_currency = @raw['MerchantCurrency'].to_i
|
|
46
47
|
@card_holder_currency = @raw['CardHolderCurrency'].to_i
|
|
47
48
|
|
|
49
|
+
@payment_source = @raw['PaymentSource']
|
|
50
|
+
|
|
48
51
|
map_chargeback_events
|
|
49
52
|
end
|
|
50
53
|
|
data/lib/pensio_api.rb
CHANGED
data/pensio_api.gemspec
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
+
require 'pensio_api/version'
|
|
4
|
+
|
|
1
5
|
Gem::Specification.new do |s|
|
|
2
6
|
s.name = 'pensio_api'
|
|
3
|
-
s.version =
|
|
7
|
+
s.version = PensioAPI::VERSION
|
|
4
8
|
s.license = 'BSD-3-Clause'
|
|
5
9
|
s.summary = "Provides integration for the Pensio Merchant API"
|
|
6
10
|
s.authors = ['Michael Sell', 'Rory Sinclair']
|
|
@@ -6,7 +6,7 @@ describe PensioAPI::Callback do
|
|
|
6
6
|
let(:response) { PensioAPI::Callback.parse_success(file_fixture("success_callback.xml")) }
|
|
7
7
|
it "should return a SuccessCallback response" do
|
|
8
8
|
expect(response).to be_an_instance_of(PensioAPI::Responses::SuccessCallback)
|
|
9
|
-
expect(response.success?).to
|
|
9
|
+
expect(response.success?).to be true
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ describe PensioAPI::Callback do
|
|
|
14
14
|
let(:response) { PensioAPI::Callback.parse_failure(file_fixture("subscription_failure_callback.xml")) }
|
|
15
15
|
it "should return a SubscriptionFailureCallback response" do
|
|
16
16
|
expect(response).to be_an_instance_of(PensioAPI::Responses::SubscriptionFailureCallback)
|
|
17
|
-
expect(response.success?).to
|
|
17
|
+
expect(response.success?).to be true
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
@@ -22,7 +22,7 @@ describe PensioAPI::Callback do
|
|
|
22
22
|
let(:response) { PensioAPI::Callback.parse_chargeback(file_fixture("chargeback_callback.xml")) }
|
|
23
23
|
it "should return a ChargebackCallback response" do
|
|
24
24
|
expect(response).to be_an_instance_of(PensioAPI::Responses::ChargebackCallback)
|
|
25
|
-
expect(response.success?).to
|
|
25
|
+
expect(response.success?).to be true
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
end
|
|
@@ -11,7 +11,7 @@ describe PensioAPI::ChargebackEvent do
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
describe 'reason_code' do
|
|
14
|
-
specify { expect(chargeback_event.reason_code).to be_an_instance_of(
|
|
14
|
+
specify { expect(chargeback_event.reason_code).to be_an_instance_of(Integer) }
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
describe 'reason' do
|
|
@@ -7,14 +7,25 @@ describe PensioAPI::Ecommerce do
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
describe '.create_payment_request' do
|
|
10
|
-
let(:response) {
|
|
10
|
+
let(:response) {PensioAPI::Ecommerce.create_payment_request(reservation_arguments.merge({timeout: 10}))}
|
|
11
11
|
it 'returns an instance of PensioAPI::Responses::GatewayURL' do
|
|
12
|
+
expect(PensioAPI::Request).to receive(:post).with("/merchant/API/createPaymentRequest",
|
|
13
|
+
{:basic_auth => {:username => "test_user", :password => "password"},
|
|
14
|
+
:headers => {
|
|
15
|
+
"Content-Type" => "application/x-www-form-urlencoded; charset=utf-8",
|
|
16
|
+
'x-altapay-client-version' => "RUBYSDK/#{PensioAPI::VERSION}"
|
|
17
|
+
},
|
|
18
|
+
:body => {:terminal => "Pensio Test Terminal",
|
|
19
|
+
:shop_orderid => "Test Payment",
|
|
20
|
+
:amount => 123.45,
|
|
21
|
+
:currency => "eur"},
|
|
22
|
+
:timeout => 10}).and_call_original
|
|
12
23
|
expect(response).to be_an_instance_of(PensioAPI::Responses::GatewayURL)
|
|
13
24
|
end
|
|
14
25
|
end
|
|
15
26
|
|
|
16
27
|
describe '.create_multi_payment_request' do
|
|
17
|
-
let(:response) {
|
|
28
|
+
let(:response) {PensioAPI::Ecommerce.create_multi_payment_request(reservation_arguments)}
|
|
18
29
|
it 'returns an instance of PensioAPI::Responses::GatewayURL' do
|
|
19
30
|
expect(response).to be_an_instance_of(PensioAPI::Responses::GatewayURL)
|
|
20
31
|
end
|
|
@@ -31,7 +31,7 @@ describe PensioAPI::Errors::GatewayError do
|
|
|
31
31
|
|
|
32
32
|
describe 'object mapping' do
|
|
33
33
|
it 'maps transactions to transaction objects' do
|
|
34
|
-
expect(error.transactions.all? { |r| r.class == PensioAPI::Transaction }).to
|
|
34
|
+
expect(error.transactions.all? { |r| r.class == PensioAPI::Transaction }).to be true
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
end
|
|
@@ -3,12 +3,12 @@ require 'spec_helper'
|
|
|
3
3
|
describe PensioAPI::Request do
|
|
4
4
|
describe '.new' do
|
|
5
5
|
before :each do
|
|
6
|
-
PensioAPI::Request.
|
|
6
|
+
allow(PensioAPI::Request).to receive(:post).and_return(construct_response(nil))
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
it 'POSTs to the given API path and passes in request options' do
|
|
10
10
|
request_options = PensioAPI::Request.new('/test').send(:request_options, {})
|
|
11
|
-
PensioAPI::Request.
|
|
11
|
+
expect(PensioAPI::Request).to receive(:post).with('/test', request_options)
|
|
12
12
|
PensioAPI::Request.new('/test')
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -16,7 +16,7 @@ describe PensioAPI::Request do
|
|
|
16
16
|
describe '.response_contains' do
|
|
17
17
|
context 'with a populated response body' do
|
|
18
18
|
before :each do
|
|
19
|
-
PensioAPI::Request.
|
|
19
|
+
allow(PensioAPI::Request).to receive(:post).and_return(
|
|
20
20
|
construct_response({
|
|
21
21
|
'Test' => 'true'
|
|
22
22
|
})
|
|
@@ -27,33 +27,33 @@ describe PensioAPI::Request do
|
|
|
27
27
|
|
|
28
28
|
context 'given a valid key' do
|
|
29
29
|
it 'returns true' do
|
|
30
|
-
expect(request.response_contains?('Test')).to
|
|
30
|
+
expect(request.response_contains?('Test')).to be true
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
context 'given an invalid key' do
|
|
35
35
|
it 'returns false' do
|
|
36
|
-
expect(request.response_contains?('OtherTest')).to
|
|
36
|
+
expect(request.response_contains?('OtherTest')).to be false
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
context 'with an empty response body' do
|
|
42
42
|
before :each do
|
|
43
|
-
PensioAPI::Request.
|
|
43
|
+
allow(PensioAPI::Request).to receive(:post).and_return(construct_response(nil))
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
let(:request) { PensioAPI::Request.new('/test') }
|
|
47
47
|
|
|
48
48
|
it 'returns false' do
|
|
49
|
-
expect(request.response_contains?('Test')).to
|
|
49
|
+
expect(request.response_contains?('Test')).to be false
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
describe '.request_options' do
|
|
55
55
|
before :each do
|
|
56
|
-
PensioAPI::Request.
|
|
56
|
+
allow(PensioAPI::Request).to receive(:post).and_return(construct_response(nil))
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
let(:p) { PensioAPI::Request.new('/test') }
|
|
@@ -40,7 +40,7 @@ describe PensioAPI::Responses::Base do
|
|
|
40
40
|
context 'with a successful response' do
|
|
41
41
|
context 'with success specified in the response body' do
|
|
42
42
|
it 'returns true' do
|
|
43
|
-
expect(response_object.success?).to
|
|
43
|
+
expect(response_object.success?).to be true
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
|
@@ -60,7 +60,7 @@ describe PensioAPI::Responses::Base do
|
|
|
60
60
|
let(:response_object) { PensioAPI::Responses::Base.new(test_data) }
|
|
61
61
|
|
|
62
62
|
it 'returns true' do
|
|
63
|
-
expect(response_object.success?).to
|
|
63
|
+
expect(response_object.success?).to be true
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
end
|
|
@@ -16,7 +16,7 @@ describe PensioAPI::Responses::FundingList do
|
|
|
16
16
|
|
|
17
17
|
describe '.page_count' do
|
|
18
18
|
it 'returns a number of pages' do
|
|
19
|
-
expect(funding_list.page_count).to be_an_instance_of(
|
|
19
|
+
expect(funding_list.page_count).to be_an_instance_of(Integer)
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -12,7 +12,7 @@ describe PensioAPI::Responses::Refund do
|
|
|
12
12
|
|
|
13
13
|
describe 'readable attributes' do
|
|
14
14
|
specify { expect(response.transaction).to be_an_instance_of(PensioAPI::Transaction) }
|
|
15
|
-
specify { expect(response.refund_amount).to eq(BigDecimal
|
|
15
|
+
specify { expect(response.refund_amount).to eq(BigDecimal('0.12')) }
|
|
16
16
|
specify { expect(response.refund_currency).to eq(978) }
|
|
17
17
|
end
|
|
18
18
|
end
|
|
@@ -12,7 +12,7 @@ describe PensioAPI::Responses::ReservationCapture do
|
|
|
12
12
|
|
|
13
13
|
describe 'readable attributes' do
|
|
14
14
|
specify { expect(response.transaction).to be_an_instance_of(PensioAPI::Transaction) }
|
|
15
|
-
specify { expect(response.capture_amount).to eq(BigDecimal
|
|
15
|
+
specify { expect(response.capture_amount).to eq(BigDecimal('0.20')) }
|
|
16
16
|
specify { expect(response.capture_currency).to eq(978) }
|
|
17
17
|
end
|
|
18
18
|
end
|
|
@@ -5,7 +5,7 @@ describe PensioAPI::Responses::SubscriptionFailureCallback do
|
|
|
5
5
|
let(:response) { PensioAPI::Callback.parse_failure(file_fixture("subscription_failure_callback.xml")) }
|
|
6
6
|
|
|
7
7
|
it "succeeds" do
|
|
8
|
-
expect(response.success?).to
|
|
8
|
+
expect(response.success?).to be true
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
describe ".reservation" do
|
|
@@ -5,7 +5,7 @@ describe PensioAPI::Responses::SuccessCallback do
|
|
|
5
5
|
let(:response) { PensioAPI::Callback.parse_success(file_fixture("success_callback.xml")) }
|
|
6
6
|
|
|
7
7
|
it "succeeds" do
|
|
8
|
-
expect(response.success?).to
|
|
8
|
+
expect(response.success?).to be true
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
describe ".reservation" do
|
|
@@ -9,7 +9,7 @@ describe PensioAPI::Responses::Terminal do
|
|
|
9
9
|
|
|
10
10
|
describe 'object mapping' do
|
|
11
11
|
it 'maps terminals to terminal objects' do
|
|
12
|
-
expect(response.terminals.all? { |r| r.class == PensioAPI::Terminal }).to
|
|
12
|
+
expect(response.terminals.all? { |r| r.class == PensioAPI::Terminal }).to be true
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
specify { expect(response.terminals.length).to eq(2) }
|
|
@@ -9,7 +9,7 @@ describe PensioAPI::Responses::Transaction do
|
|
|
9
9
|
|
|
10
10
|
describe 'object mapping' do
|
|
11
11
|
it 'maps transactions to transaction objects' do
|
|
12
|
-
expect(response.transactions.all? { |r| r.class == PensioAPI::Transaction }).to
|
|
12
|
+
expect(response.transactions.all? { |r| r.class == PensioAPI::Transaction }).to be true
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
specify { expect(response.transactions.length).to eq(1) }
|
|
@@ -31,11 +31,11 @@ describe PensioAPI::Transaction do
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
describe '.merchant_currency' do
|
|
34
|
-
specify { expect(transaction.merchant_currency).to be_an_instance_of(
|
|
34
|
+
specify { expect(transaction.merchant_currency).to be_an_instance_of(Integer) }
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
describe '.card_holder_currency' do
|
|
38
|
-
specify { expect(transaction.card_holder_currency).to be_an_instance_of(
|
|
38
|
+
specify { expect(transaction.card_holder_currency).to be_an_instance_of(Integer) }
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
describe '.chargeback_events' do
|
|
@@ -51,7 +51,7 @@ describe PensioAPI::Transaction do
|
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
it 'maps transactions to transaction objects' do
|
|
54
|
-
expect(response.all? { |r| r.class == PensioAPI::Transaction }).to
|
|
54
|
+
expect(response.all? { |r| r.class == PensioAPI::Transaction }).to be true
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
specify { expect(response.transactions.length).to eq(1) }
|
|
@@ -91,7 +91,7 @@ describe PensioAPI::Transaction do
|
|
|
91
91
|
|
|
92
92
|
context 'when the full reserved amount has not been captured' do
|
|
93
93
|
it 'returns false' do
|
|
94
|
-
transaction.
|
|
94
|
+
allow(transaction).to receive(:captured_amount).and_return(BigDecimal('0'))
|
|
95
95
|
expect(transaction).to_not be_captured
|
|
96
96
|
end
|
|
97
97
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pensio_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Sell
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2021-12-21 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
@@ -115,6 +115,7 @@ executables: []
|
|
|
115
115
|
extensions: []
|
|
116
116
|
extra_rdoc_files: []
|
|
117
117
|
files:
|
|
118
|
+
- ".gitignore"
|
|
118
119
|
- ".rspec"
|
|
119
120
|
- Gemfile
|
|
120
121
|
- Gemfile.lock
|
|
@@ -155,6 +156,7 @@ files:
|
|
|
155
156
|
- lib/pensio_api/subscription.rb
|
|
156
157
|
- lib/pensio_api/terminal.rb
|
|
157
158
|
- lib/pensio_api/transaction.rb
|
|
159
|
+
- lib/pensio_api/version.rb
|
|
158
160
|
- pensio_api.gemspec
|
|
159
161
|
- spec/lib/pensio_api/billing_address_spec.rb
|
|
160
162
|
- spec/lib/pensio_api/callback_spec.rb
|
|
@@ -226,8 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
226
228
|
- !ruby/object:Gem::Version
|
|
227
229
|
version: '0'
|
|
228
230
|
requirements: []
|
|
229
|
-
|
|
230
|
-
rubygems_version: 2.2.2
|
|
231
|
+
rubygems_version: 3.0.3.1
|
|
231
232
|
signing_key:
|
|
232
233
|
specification_version: 4
|
|
233
234
|
summary: Provides integration for the Pensio Merchant API
|