pensio_api 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -0
  3. data/Gemfile.lock +57 -46
  4. data/README.md +2 -0
  5. data/lib/pensio_api.rb +2 -0
  6. data/lib/pensio_api/chargeback_event.rb +1 -1
  7. data/lib/pensio_api/funding_list.rb +1 -1
  8. data/lib/pensio_api/funding_list_request.rb +1 -1
  9. data/lib/pensio_api/mixins/request_defaults.rb +2 -1
  10. data/lib/pensio_api/request.rb +1 -1
  11. data/lib/pensio_api/responses/refund.rb +1 -1
  12. data/lib/pensio_api/responses/reservation_capture.rb +1 -1
  13. data/lib/pensio_api/transaction.rb +7 -4
  14. data/lib/pensio_api/version.rb +3 -0
  15. data/pensio_api.gemspec +5 -1
  16. data/spec/lib/pensio_api/callback_spec.rb +3 -3
  17. data/spec/lib/pensio_api/chargeback_event_spec.rb +1 -1
  18. data/spec/lib/pensio_api/ecommerce_spec.rb +12 -9
  19. data/spec/lib/pensio_api/errors/bad_request_spec.rb +1 -1
  20. data/spec/lib/pensio_api/errors/gateway_error_spec.rb +1 -1
  21. data/spec/lib/pensio_api/request_spec.rb +8 -8
  22. data/spec/lib/pensio_api/responses/base_spec.rb +2 -2
  23. data/spec/lib/pensio_api/responses/chargeback_callback_spec.rb +1 -1
  24. data/spec/lib/pensio_api/responses/funding_list_spec.rb +1 -1
  25. data/spec/lib/pensio_api/responses/refund_spec.rb +1 -1
  26. data/spec/lib/pensio_api/responses/reservation_capture_spec.rb +1 -1
  27. data/spec/lib/pensio_api/responses/subscription_charge_spec.rb +1 -1
  28. data/spec/lib/pensio_api/responses/subscription_failure_callback_spec.rb +1 -1
  29. data/spec/lib/pensio_api/responses/success_callback_spec.rb +1 -1
  30. data/spec/lib/pensio_api/responses/terminal_spec.rb +1 -1
  31. data/spec/lib/pensio_api/responses/transaction_spec.rb +1 -1
  32. data/spec/lib/pensio_api/transaction_spec.rb +4 -4
  33. data/spec/spec_helper.rb +0 -1
  34. metadata +10 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8577b26c3c61f28cf55c6720092014f1d92cbf6c
4
- data.tar.gz: bf28113bc48d90521d787384731344d44d7e8d03
2
+ SHA256:
3
+ metadata.gz: 781ea82badd4f553a0041c19c1e6e0dca9caf62b971550c55b4aa932b24e2d80
4
+ data.tar.gz: 7699c92bd15352c2a54183e35f03362062295ccd0c840d94b8aed1dba9eba77c
5
5
  SHA512:
6
- metadata.gz: 9b37a15fd508ac5d84731f0e875f37c8ac01dab81ec5f65b0b9bf88dfbb25577e8fa6aafe72347e1aaf8dbbb1d79697205b01bbbcce1a2a2578bad9a7026eddc
7
- data.tar.gz: 2fe3129012f08a7d76cb907b16dfdb7637604494d8670eb09e73e41e17f530eb573dd133889535a88d6e1f276546b3d5ab2d522b459f170309a769e5b58ba47b
6
+ metadata.gz: 06c96a50bc88c4d0e766c87909e7c787710b571d6221c3feed4e7c06c4f4567890639b63730243012e9f42d442e6026d57b127b663dab0a63efbf6c44a607bf8
7
+ data.tar.gz: 332ee83a97dc3a3eb8b9bac31fecf930dd4ef3bc2051d7da8e4e4be4177251f3ba4b2cda6ae7030cd904a23ea7a106a764d4dff1bfdccc3481029119fd676230
@@ -0,0 +1,3 @@
1
+ .idea/*
2
+ .ruby-version
3
+
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pensio_api (0.3.1)
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 (4.2.1)
13
- i18n (~> 0.7)
14
- json (~> 1.7, >= 1.7.7)
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.3.5)
19
- celluloid (0.15.2)
20
- timers (~> 1.1.0)
21
- coderay (1.1.0)
22
- crack (0.4.1)
23
- safe_yaml (~> 0.9.0)
24
- diff-lcs (1.2.5)
25
- ffi (1.9.3)
26
- formatador (0.2.4)
17
+ addressable (2.7.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.4)
33
+ guard-rspec (4.2.10)
34
34
  guard (~> 2.1)
35
35
  rspec (>= 2.14, < 4.0)
36
- httparty (0.13.0)
37
- json (~> 1.8)
36
+ hitimes (2.0.0)
37
+ httparty (0.18.1)
38
+ mime-types (~> 3.0)
38
39
  multi_xml (>= 0.5.2)
39
- i18n (0.7.0)
40
- json (1.8.2)
41
- listen (2.4.0)
42
- celluloid (>= 0.15.2)
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.0.4)
46
- method_source (0.8.2)
47
- minitest (5.5.1)
48
- multi_xml (0.5.5)
49
- pry (0.9.12.4)
50
- coderay (~> 1.0)
51
- method_source (~> 0.8)
52
- slop (~> 3.4)
53
- rb-fsevent (0.9.4)
54
- rb-inotify (0.9.3)
55
- ffi (>= 0.5.0)
56
- rspec (2.14.1)
57
- rspec-core (~> 2.14.0)
58
- rspec-expectations (~> 2.14.0)
59
- rspec-mocks (~> 2.14.0)
60
- rspec-core (2.14.7)
61
- rspec-expectations (2.14.4)
62
- diff-lcs (>= 1.1.3, < 2.0)
63
- rspec-mocks (2.14.4)
64
- safe_yaml (0.9.7)
65
- slop (3.4.7)
66
- thor (0.18.1)
67
- thread_safe (0.3.5)
68
- timers (1.1.0)
69
- tzinfo (1.2.2)
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,6 +1,8 @@
1
1
  # PensioAPI
2
2
  This gem covers most of the Merchant and eCommerce API functionality provided by AltaPay, formerly Pensio (https://altapay.com).
3
3
 
4
+ Ruby 2.4.x or later is recommended.
5
+
4
6
  ## Getting Started
5
7
 
6
8
  First, register your Pensio credentials. For example, if you're using rails, create `config/initializers/pensio.rb` with the following contents:
@@ -1,5 +1,7 @@
1
1
  require 'active_support/core_ext/string/inflections'
2
2
 
3
+ require 'pensio_api/version'
4
+
3
5
  require 'pensio_api/mixins/id'
4
6
  require 'pensio_api/mixins/has_transactions'
5
7
  require 'pensio_api/mixins/method_missing'
@@ -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.new(@raw['Amount'])
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.parsed_response, col_sep: ';', headers: true).reject(&:empty?)
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={})
@@ -12,7 +12,7 @@ module PensioAPI
12
12
  end
13
13
 
14
14
  def response_contains?(key)
15
- @body && @body.has_key?(key)
15
+ !!@body && @body.has_key?(key)
16
16
  end
17
17
  end
18
18
  end
@@ -9,7 +9,7 @@ module PensioAPI
9
9
  @transaction = PensioAPI::Transaction.new(
10
10
  transactions['Transaction']
11
11
  )
12
- @refund_amount = BigDecimal.new(@raw['RefundedAmount'])
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.new(@raw['CaptureAmount'])
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.new(@raw['CapturedAmount'])
35
- @reserved_amount = BigDecimal.new(@raw['ReservedAmount'])
36
- @refunded_amount = BigDecimal.new(@raw['RefundedAmount'])
37
- @recurring_default_amount = BigDecimal.new(@raw['RecurringDefaultAmount'])
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
 
@@ -0,0 +1,3 @@
1
+ module PensioAPI
2
+ VERSION = '0.3.4'.freeze
3
+ end
@@ -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 = '0.3.3'
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 be_true
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 be_true
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 be_true
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(Fixnum) }
14
+ specify { expect(chargeback_event.reason_code).to be_an_instance_of(Integer) }
15
15
  end
16
16
 
17
17
  describe 'reason' do
@@ -7,22 +7,25 @@ describe PensioAPI::Ecommerce do
7
7
  end
8
8
 
9
9
  describe '.create_payment_request' do
10
- let(:response) { PensioAPI::Ecommerce.create_payment_request(reservation_arguments.merge({timeout: 10})) }
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
12
  expect(PensioAPI::Request).to receive(:post).with("/merchant/API/createPaymentRequest",
13
- { :basic_auth=>{:username=>"test_user", :password=>"password"},
14
- :headers=>{"Content-Type"=>"application/x-www-form-urlencoded; charset=utf-8"},
15
- :body=>{:terminal=>"Pensio Test Terminal",
16
- :shop_orderid=>"Test Payment",
17
- :amount=>123.45,
18
- :currency=>"eur"},
19
- :timeout=>10 }).and_call_original
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
20
23
  expect(response).to be_an_instance_of(PensioAPI::Responses::GatewayURL)
21
24
  end
22
25
  end
23
26
 
24
27
  describe '.create_multi_payment_request' do
25
- let(:response) { PensioAPI::Ecommerce.create_multi_payment_request(reservation_arguments) }
28
+ let(:response) {PensioAPI::Ecommerce.create_multi_payment_request(reservation_arguments)}
26
29
  it 'returns an instance of PensioAPI::Responses::GatewayURL' do
27
30
  expect(response).to be_an_instance_of(PensioAPI::Responses::GatewayURL)
28
31
  end
@@ -25,7 +25,7 @@ describe PensioAPI::Errors::BadRequest do
25
25
  end
26
26
 
27
27
  describe '.error_code' do
28
- specify { expect(error.error_code).to be_an_instance_of(Fixnum) }
28
+ specify { expect(error.error_code).to be_an_instance_of(Integer) }
29
29
  end
30
30
  end
31
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 be_true
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.stub(:post).and_return(construct_response(nil))
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.should_receive(:post).with('/test', request_options)
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.stub(:post).and_return(
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 be_true
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 be_false
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.stub(:post).and_return(construct_response(nil))
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 be_false
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.stub(:post).and_return(construct_response(nil))
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 be_true
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 be_true
63
+ expect(response_object.success?).to be true
64
64
  end
65
65
  end
66
66
  end
@@ -4,6 +4,6 @@ describe PensioAPI::Responses::ChargebackCallback do
4
4
  let(:response) { PensioAPI::Callback.parse_chargeback(file_fixture("chargeback_callback.xml")) }
5
5
 
6
6
  it "succeeds" do
7
- expect(response.success?).to be_true
7
+ expect(response.success?).to be true
8
8
  end
9
9
  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(Fixnum)
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.new('0.12')) }
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.new('0.20')) }
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
@@ -37,7 +37,7 @@ describe PensioAPI::Responses::SubscriptionCharge do
37
37
 
38
38
  describe '.captured?' do
39
39
  it 'delegates .captured? to the new transaction' do
40
- response.new.should_receive(:captured?)
40
+ expect(response).to receive(:captured?)
41
41
  response.captured?
42
42
  end
43
43
 
@@ -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 be_true
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 be_true
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 be_true
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 be_true
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(Fixnum) }
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(Fixnum) }
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 be_true
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.stub(:captured_amount).and_return(BigDecimal.new('0'))
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
@@ -6,7 +6,6 @@ require 'pensio_api'
6
6
  require './spec/support/helpers'
7
7
 
8
8
  RSpec.configure do |config|
9
- config.treat_symbols_as_metadata_keys_with_true_values = true
10
9
  config.run_all_when_everything_filtered = true
11
10
  config.filter_run :focus
12
11
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pensio_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Sell
8
8
  - Rory Sinclair
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-14 00:00:00.000000000 Z
12
+ date: 2020-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -109,12 +109,13 @@ dependencies:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: 0.5.2
112
- description:
112
+ description:
113
113
  email: michael@asw.com
114
114
  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
@@ -207,11 +209,11 @@ files:
207
209
  - spec/support/fixtures/subscription_failure_callback.xml
208
210
  - spec/support/fixtures/success_callback.xml
209
211
  - spec/support/helpers.rb
210
- homepage:
212
+ homepage:
211
213
  licenses:
212
214
  - BSD-3-Clause
213
215
  metadata: {}
214
- post_install_message:
216
+ post_install_message:
215
217
  rdoc_options: []
216
218
  require_paths:
217
219
  - lib
@@ -226,9 +228,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
228
  - !ruby/object:Gem::Version
227
229
  version: '0'
228
230
  requirements: []
229
- rubyforge_project:
230
- rubygems_version: 2.2.2
231
- signing_key:
231
+ rubygems_version: 3.0.3
232
+ signing_key:
232
233
  specification_version: 4
233
234
  summary: Provides integration for the Pensio Merchant API
234
235
  test_files: