fat_zebra 3.2.3 → 3.2.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.
@@ -0,0 +1,109 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://gateway.sandbox.fatzebra.com.au/v1.0/purchases
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"amount":10000,"card_holder":"Matthew Savage","card_number":"5123456789012346","card_expiry":"02/2030","cvv":123,"reference":"558867e5b205ddc58db8c30edf5fb7f9","customer_ip":"1.2.3.4","capture":false,"currency":"AUD","test":true}'
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Ruby
16
+ Authorization:
17
+ - Basic VEVTVDpURVNU
18
+ Content-Type:
19
+ - application/json
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Tue, 08 Jun 2021 23:45:55 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ Status:
34
+ - 200 OK
35
+ Cache-Control:
36
+ - no-store
37
+ Strict-Transport-Security:
38
+ - max-age=31536000; includeSubDomains
39
+ - max-age=31536000; includeSubDomains
40
+ X-Request-Version:
41
+ - 1.21.8
42
+ Pragma:
43
+ - no-cache
44
+ X-Request-Id:
45
+ - 222f16437f6e911726a3586d
46
+ X-Runtime:
47
+ - '0.118003'
48
+ X-Backend:
49
+ - gateway
50
+ body:
51
+ encoding: UTF-8
52
+ string: '{"successful":true,"response":{"authorization":"332706","id":"071-P-V9MKMHAL","card_number":"512345XXXXXX2346","card_holder":"Matthew
53
+ Savage","card_expiry":"2030-02-28","card_token":"ca9op0w3dybutwcfsc8i","card_type":"MasterCard","card_category":"Credit","card_subcategory":"Standard","amount":10000,"decimal_amount":100.0,"successful":true,"message":"Approved","reference":"558867e5b205ddc58db8c30edf5fb7f9","currency":"AUD","transaction_id":"071-P-V9MKMHAL","settlement_date":null,"transaction_date":"2021-06-09T09:45:55+10:00","response_code":"00","captured":false,"captured_amount":0,"rrn":"071PV9MKMHAL","cvv_match":"M","metadata":{"authorization_tracking_id":"","card_sequence_number":"","sca_exemption":"","scheme_token_used":"false","original_transaction_reference":""},"addendum_data":{}},"errors":[],"test":true}'
54
+ http_version:
55
+ recorded_at: Tue, 08 Jun 2021 23:45:55 GMT
56
+ - request:
57
+ method: put
58
+ uri: https://gateway.sandbox.fatzebra.com.au/v1.0/purchases/071-P-V9MKMHAL
59
+ body:
60
+ encoding: UTF-8
61
+ string: '{"amount":10200,"test":true}'
62
+ headers:
63
+ Accept-Encoding:
64
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
65
+ Accept:
66
+ - application/json
67
+ User-Agent:
68
+ - Ruby
69
+ Authorization:
70
+ - Basic VEVTVDpURVNU
71
+ Content-Type:
72
+ - application/json
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: OK
77
+ headers:
78
+ Date:
79
+ - Tue, 08 Jun 2021 23:45:55 GMT
80
+ Content-Type:
81
+ - application/json; charset=utf-8
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Connection:
85
+ - keep-alive
86
+ Status:
87
+ - 200 OK
88
+ Cache-Control:
89
+ - no-store
90
+ Strict-Transport-Security:
91
+ - max-age=31536000; includeSubDomains
92
+ - max-age=31536000; includeSubDomains
93
+ X-Request-Version:
94
+ - 1.21.8
95
+ Pragma:
96
+ - no-cache
97
+ X-Request-Id:
98
+ - 6f5813c4661a0151133fe49d
99
+ X-Runtime:
100
+ - '0.045495'
101
+ X-Backend:
102
+ - gateway
103
+ body:
104
+ encoding: UTF-8
105
+ string: '{"successful":true,"response":{"authorization":"332706","id":"071-P-V9MKMHAL","card_number":"512345XXXXXX2346","card_holder":"Matthew
106
+ Savage","card_expiry":"2030-02-28","card_token":"ca9op0w3dybutwcfsc8i","card_type":"MasterCard","card_category":"Credit","card_subcategory":"Standard","amount":10200,"decimal_amount":102.0,"successful":true,"message":"Approved","reference":"558867e5b205ddc58db8c30edf5fb7f9","currency":"AUD","transaction_id":"071-P-V9MKMHAL","settlement_date":null,"transaction_date":"2021-06-09T09:45:55+10:00","response_code":"00","captured":false,"captured_amount":0,"rrn":"071PV9MKMHAL","cvv_match":"M","metadata":{"sca_exemption":"","scheme_token_used":"false","card_sequence_number":"","authorization_tracking_id":"","original_transaction_reference":"","original_amount":"10000"},"addendum_data":{}},"errors":[],"test":true}'
107
+ http_version:
108
+ recorded_at: Tue, 08 Jun 2021 23:45:55 GMT
109
+ recorded_with: VCR 3.0.3
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe FatZebra::PaymentPlan do
4
4
  let(:customer) { FatZebra::Customer.create(customer_valid_payload) }
5
5
 
6
- let(:payment_plan_valid_payload) {{
6
+ let(:valid_instalment_payload) {{
7
7
  payment_method: 'Credit Card',
8
8
  customer: customer.id,
9
9
  reference: SecureRandom.hex,
@@ -16,22 +16,45 @@ describe FatZebra::PaymentPlan do
16
16
  total_amount: 500
17
17
  }}
18
18
 
19
+ let(:valid_subscription_payload) {{
20
+ payment_method: 'Credit Card',
21
+ customer: customer.id,
22
+ reference: SecureRandom.hex,
23
+ setup_fee: 0,
24
+ amount: 100,
25
+ start_date: (Date.today + 90).strftime('%Y-%m-%d'),
26
+ end_date: (Date.today + 180).strftime('%Y-%m-%d'),
27
+ frequency: 'Weekly',
28
+ anniversary: 5,
29
+ }}
30
+
31
+
19
32
  describe '.create', :vcr do
20
- subject(:payment_plan) { FatZebra::PaymentPlan.create(payment_plan_valid_payload) }
33
+ subject(:payment_plan) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
21
34
 
22
35
  it { is_expected.to be_accepted }
23
36
  it { expect(payment_plan.id).to_not be_empty }
24
37
  it { expect(payment_plan.payments.count).to eq(5) }
25
38
 
39
+ context 'perpetual subscription' do
40
+ subject(:subscription_payload) { FatZebra::PaymentPlan.create(valid_subscription_payload) }
41
+ it { is_expected.to be_accepted }
42
+ it { expect(subscription_payload.id).to_not be_empty }
43
+ it { expect(subscription_payload.payments.count).to eq(12) }
44
+ end
45
+
26
46
  context 'validations' do
27
- let(:payment_plan_valid_payload) {{}}
47
+ let(:valid_instalment_payload) {{}}
28
48
 
29
49
  it { expect { payment_plan }.to raise_error(FatZebra::RequestValidationError) }
50
+
30
51
  end
52
+
53
+
31
54
  end
32
55
 
33
56
  describe '.find', :vcr do
34
- let!(:create) { FatZebra::PaymentPlan.create(payment_plan_valid_payload) }
57
+ let!(:create) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
35
58
  subject(:payment_plan) { FatZebra::PaymentPlan.find(create.reference) }
36
59
 
37
60
  it { is_expected.to be_accepted }
@@ -40,7 +63,7 @@ describe FatZebra::PaymentPlan do
40
63
  end
41
64
 
42
65
  describe '.update', :vcr do
43
- let(:create) { FatZebra::PaymentPlan.create(payment_plan_valid_payload) }
66
+ let(:create) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
44
67
 
45
68
  subject(:payment_plan) { FatZebra::PaymentPlan.update(create.id, new_status: 'Suspended') }
46
69
 
@@ -50,7 +73,7 @@ describe FatZebra::PaymentPlan do
50
73
  end
51
74
 
52
75
  context '#update', :vcr do
53
- let(:payment_plan) { FatZebra::PaymentPlan.new(payment_plan_valid_payload) }
76
+ let(:payment_plan) { FatZebra::PaymentPlan.new(valid_instalment_payload) }
54
77
  before { payment_plan.save }
55
78
  before { payment_plan.update(new_status: 'Suspended') }
56
79
 
@@ -59,21 +82,21 @@ describe FatZebra::PaymentPlan do
59
82
  end
60
83
 
61
84
  describe '.delete', :vcr do
62
- let(:create) { FatZebra::PaymentPlan.create(payment_plan_valid_payload) }
85
+ let(:create) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
63
86
  subject(:payment_plan) { FatZebra::PaymentPlan.delete(create.id) }
64
87
 
65
88
  it { is_expected.to be_accepted }
66
89
  end
67
90
 
68
91
  describe '#destroy', :vcr do
69
- let(:payment_plan) { FatZebra::PaymentPlan.create(payment_plan_valid_payload) }
92
+ let(:payment_plan) { FatZebra::PaymentPlan.create(valid_instalment_payload) }
70
93
  before { payment_plan.destroy }
71
94
 
72
95
  it { expect(payment_plan.status).to eq('Cancelled') }
73
96
  end
74
97
 
75
98
  describe '#suspend!', :vcr do
76
- let(:payment_plan) { FatZebra::PaymentPlan.new(payment_plan_valid_payload) }
99
+ let(:payment_plan) { FatZebra::PaymentPlan.new(valid_instalment_payload) }
77
100
  before { payment_plan.save }
78
101
  before { payment_plan.suspend! }
79
102
 
@@ -82,7 +105,7 @@ describe FatZebra::PaymentPlan do
82
105
  end
83
106
 
84
107
  describe '#active!', :vcr do
85
- let(:payment_plan) { FatZebra::PaymentPlan.new(payment_plan_valid_payload) }
108
+ let(:payment_plan) { FatZebra::PaymentPlan.new(valid_instalment_payload) }
86
109
  before { payment_plan.save }
87
110
  before { expect(payment_plan.suspend!.status).to eq('Suspended') }
88
111
  before { payment_plan.active! }
@@ -102,4 +102,22 @@ describe FatZebra::Purchase do
102
102
  it { expect(settlement.data.first).to be_a(FatZebra::Purchase) }
103
103
  end
104
104
 
105
+ describe '#extend!', :vcr do
106
+ let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload.merge(capture: false)) }
107
+ subject(:extend) { purchase.extend! }
108
+
109
+ it { is_expected.to be_accepted }
110
+ it { is_expected.to be_successful }
111
+ it { expect(extend).to be_a(FatZebra::Purchase) }
112
+ end
113
+
114
+ describe '#increment', :vcr do
115
+ let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload.merge(capture: false)) }
116
+ subject(:increment) { purchase.increment!(200) }
117
+
118
+ it { is_expected.to be_accepted }
119
+ it { is_expected.to be_successful }
120
+ it { expect(increment).to be_a(FatZebra::Purchase) }
121
+ it { expect(increment.amount).to eq(valid_purchase_payload[:amount] + 200) }
122
+ end
105
123
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fat_zebra
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.3
4
+ version: 3.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fat Zebra
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-04 00:00:00.000000000 Z
11
+ date: 2022-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug
@@ -234,6 +234,9 @@ files:
234
234
  - spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml
235
235
  - spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml
236
236
  - spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml
237
+ - spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_1.yml
238
+ - spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_2.yml
239
+ - spec/cassettes/FatZebra_PaymentPlan/_create/perpetual_subscription/1_1_4_3.yml
237
240
  - spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml
238
241
  - spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml
239
242
  - spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml
@@ -278,10 +281,17 @@ files:
278
281
  - spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml
279
282
  - spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml
280
283
  - spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml
284
+ - spec/cassettes/FatZebra_Purchase/_extend_/1_9_1.yml
285
+ - spec/cassettes/FatZebra_Purchase/_extend_/1_9_2.yml
286
+ - spec/cassettes/FatZebra_Purchase/_extend_/1_9_3.yml
281
287
  - spec/cassettes/FatZebra_Purchase/_find/1_2_1.yml
282
288
  - spec/cassettes/FatZebra_Purchase/_find/1_2_2.yml
283
289
  - spec/cassettes/FatZebra_Purchase/_find/1_2_3.yml
284
290
  - spec/cassettes/FatZebra_Purchase/_find/1_2_4.yml
291
+ - spec/cassettes/FatZebra_Purchase/_increment/1_10_1.yml
292
+ - spec/cassettes/FatZebra_Purchase/_increment/1_10_2.yml
293
+ - spec/cassettes/FatZebra_Purchase/_increment/1_10_3.yml
294
+ - spec/cassettes/FatZebra_Purchase/_increment/1_10_4.yml
285
295
  - spec/cassettes/FatZebra_Purchase/_refund/1_4_1.yml
286
296
  - spec/cassettes/FatZebra_Purchase/_refund/1_4_2.yml
287
297
  - spec/cassettes/FatZebra_Purchase/_refund/1_4_3.yml
@@ -355,7 +365,7 @@ files:
355
365
  homepage: ''
356
366
  licenses: []
357
367
  metadata: {}
358
- post_install_message:
368
+ post_install_message:
359
369
  rdoc_options: []
360
370
  require_paths:
361
371
  - lib
@@ -370,8 +380,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
370
380
  - !ruby/object:Gem::Version
371
381
  version: '0'
372
382
  requirements: []
373
- rubygems_version: 3.1.2
374
- signing_key:
383
+ rubygems_version: 3.1.6
384
+ signing_key:
375
385
  specification_version: 4
376
386
  summary: Fat Zebra payments gem - integrate your ruby app with Fat Zebra
377
387
  test_files: []