fat_zebra 3.0.11 → 3.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.rubocop.yml +3 -5
- data/.travis.yml +3 -3
- data/README.md +5 -5
- data/fat_zebra.gemspec +5 -7
- data/lib/fat_zebra.rb +8 -0
- data/lib/fat_zebra/api_operation/search.rb +1 -1
- data/lib/fat_zebra/authenticate.rb +64 -0
- data/lib/fat_zebra/card.rb +1 -0
- data/lib/fat_zebra/direct_credit.rb +1 -1
- data/lib/fat_zebra/direct_debit.rb +1 -1
- data/lib/fat_zebra/paypal/authorization.rb +49 -0
- data/lib/fat_zebra/paypal/billing_agreement.rb +56 -0
- data/lib/fat_zebra/paypal/capture.rb +36 -0
- data/lib/fat_zebra/paypal/order.rb +22 -0
- data/lib/fat_zebra/paypal/refund.rb +22 -0
- data/lib/fat_zebra/refund.rb +4 -0
- data/lib/fat_zebra/util.rb +1 -1
- data/lib/fat_zebra/validation.rb +4 -0
- data/lib/fat_zebra/version.rb +1 -1
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/validations/1_3_5_1.yml +46 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_1.yml +90 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_2.yml +90 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_1.yml +90 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_2.yml +90 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_1.yml +90 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_2.yml +87 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_3.yml +92 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_4.yml +91 -0
- data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_type_validation/1_3_4_1.yml +46 -0
- data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_invalid/returns_error_when_invalid_token.yml +47 -0
- data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_valid/decodes_JWT.yml +87 -0
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_given_params.yml +44 -0
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_no_amount.yml +44 -0
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_amount_is_invalid.yml +44 -0
- data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_currency_is_invalid.yml +46 -0
- data/spec/cassettes/FatZebra_BankAccount/_create/1_1_1.yml +8 -14
- data/spec/cassettes/FatZebra_BankAccount/_create/1_1_2.yml +8 -14
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_1.yml +34 -52
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_2.yml +34 -52
- data/spec/cassettes/FatZebra_BankAccount/_search/1_2_3.yml +34 -52
- data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_1.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_2.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_1.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_2.yml +11 -17
- data/spec/cassettes/FatZebra_Batch/_find/1_2_1.yml +19 -31
- data/spec/cassettes/FatZebra_Batch/_find/1_2_2.yml +19 -31
- data/spec/cassettes/FatZebra_Batch/_result/1_4_1.yml +26 -44
- data/spec/cassettes/FatZebra_Batch/_search/1_3_1.yml +8 -14
- data/spec/cassettes/FatZebra_Batch/_search/1_3_2.yml +8 -14
- data/spec/cassettes/FatZebra_Batch/_search/1_3_3.yml +8 -14
- data/spec/cassettes/FatZebra_Card/_create/1_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_2.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_3.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_4.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_5.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_create/1_1_6.yml +7 -13
- data/spec/cassettes/FatZebra_Card/_find/1_3_1.yml +111 -0
- data/spec/cassettes/FatZebra_Card/_find/1_3_2.yml +111 -0
- data/spec/cassettes/FatZebra_Card/_update/1_2_1.yml +15 -27
- data/spec/cassettes/FatZebra_Card/_update/1_2_2.yml +15 -27
- data/spec/cassettes/FatZebra_Card/_update/1_2_3.yml +15 -27
- data/spec/cassettes/FatZebra_Card/_update/validations/1_2_4_1.yml +7 -13
- data/spec/cassettes/FatZebra_Customer/_create/1_1_1.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_2.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_3.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_4.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_5.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_create/1_1_6.yml +9 -15
- data/spec/cassettes/FatZebra_Customer/_delete/1_5_1.yml +18 -30
- data/spec/cassettes/FatZebra_Customer/_find/1_3_1.yml +18 -30
- data/spec/cassettes/FatZebra_Customer/_find/1_3_2.yml +18 -30
- data/spec/cassettes/FatZebra_Customer/_search/1_2_1.yml +14 -24
- data/spec/cassettes/FatZebra_Customer/_search/1_2_2.yml +14 -24
- data/spec/cassettes/FatZebra_Customer/_search/1_2_3.yml +14 -24
- data/spec/cassettes/FatZebra_Customer/_update/1_4_1.yml +19 -31
- data/spec/cassettes/FatZebra_Customer/_update/1_4_2.yml +19 -31
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_1.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_2.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_3.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_4.yml +8 -14
- data/spec/cassettes/FatZebra_DirectCredit/_create/validations/valid/1_1_5_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_DirectCredit/_delete/1_4_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_2.yml +16 -28
- data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_3.yml +103 -0
- data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_1.yml +24 -42
- data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_2.yml +24 -42
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_1.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_2.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_3.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_4.yml +8 -14
- data/spec/cassettes/FatZebra_DirectDebit/_create/validations/valid/1_1_5_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_DirectDebit/_delete/1_4_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_1.yml +16 -28
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_2.yml +16 -28
- data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_3.yml +103 -0
- data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_1.yml +24 -42
- data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_2.yml +24 -42
- data/spec/cassettes/FatZebra_Information/_ping/1_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_Information/_ping/1_1_2.yml +7 -13
- data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_1.yml +52 -76
- data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_2.yml +52 -76
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml +22 -34
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml +22 -34
- data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml +22 -34
- data/spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml +31 -49
- data/spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml +31 -49
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml +35 -53
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_2.yml +35 -53
- data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_3.yml +35 -53
- data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_1.yml +37 -55
- data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_2.yml +37 -55
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_1.yml +31 -49
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_2.yml +31 -49
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_3.yml +31 -49
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_1.yml +37 -55
- data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_2.yml +37 -55
- data/spec/cassettes/FatZebra_Paypal_Authorization/_capture/returns_a_new_capture_record.yml +45 -0
- data/spec/cassettes/FatZebra_Paypal_Authorization/_find/when_found/returns_authorization.yml +46 -0
- data/spec/cassettes/FatZebra_Paypal_Authorization/_search/with_date_filter/returns_records_created_after_start_date.yml +46 -0
- data/spec/cassettes/FatZebra_Paypal_Authorization/_void/returns_a_voided_capture_record.yml +44 -0
- data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_charge/Valid_payload/returns_a_new_order_record.yml +48 -0
- data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_find/when_found/returns_billing_agreement.yml +48 -0
- data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_search/with_date_filter/returns_records_created_after_start_date.yml +48 -0
- data/spec/cassettes/FatZebra_Paypal_Capture/_find/when_found/returns_capture.yml +47 -0
- data/spec/cassettes/FatZebra_Paypal_Capture/_refund/returns_a_new_refund_record.yml +45 -0
- data/spec/cassettes/FatZebra_Paypal_Capture/_search/with_date_filter/returns_records_created_after_start_date.yml +49 -0
- data/spec/cassettes/FatZebra_Paypal_Order/_find/when_found/returns_order.yml +48 -0
- data/spec/cassettes/FatZebra_Paypal_Order/_search/with_date_filter/returns_orders_created_after_start_date.yml +55 -0
- data/spec/cassettes/FatZebra_Paypal_Refund/_find/when_found/returns_refund.yml +47 -0
- data/spec/cassettes/FatZebra_Paypal_Refund/_search/with_date_filter/returns_all_refund_records_created_after_start_date.yml +50 -0
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_1.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_10.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_11.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_12.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_13.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_2.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_3.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_4.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_5.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_6.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_7.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_8.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml +9 -15
- data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml +11 -17
- data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml +11 -17
- data/spec/cassettes/FatZebra_Purchase/_search/1_3_1.yml +36 -54
- data/spec/cassettes/FatZebra_Purchase/_search/1_3_2.yml +36 -54
- data/spec/cassettes/FatZebra_Purchase/_search/1_3_3.yml +36 -54
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_1.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_2.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_3.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_6_4.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_1.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_2.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_3.yml +18 -30
- data/spec/cassettes/FatZebra_Purchase/_void/1_7_4.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_1.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_10.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_2.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_3.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_4.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_5.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_6.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_7.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_8.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_create/1_1_9.yml +18 -30
- data/spec/cassettes/FatZebra_Refund/_find/1_2_1.yml +27 -45
- data/spec/cassettes/FatZebra_Refund/_find/1_2_2.yml +27 -45
- data/spec/cassettes/FatZebra_Refund/_find/1_2_3.yml +27 -45
- data/spec/cassettes/FatZebra_Refund/_search/responds_with_the_newly-created_refunds.yml +214 -0
- data/spec/cassettes/FatZebra_Refund/_void/1_4_1.yml +27 -45
- data/spec/cassettes/FatZebra_Refund/_void/1_4_2.yml +27 -45
- data/spec/cassettes/FatZebra_Refund/_void/1_4_3.yml +27 -45
- data/spec/cassettes/FatZebra_Refund/_void/1_4_4.yml +27 -45
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_1.yml +7 -13
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_2.yml +7 -13
- data/spec/cassettes/FatZebra_WebHook/_create/1_1_3.yml +7 -13
- data/spec/cassettes/FatZebra_WebHook/_delete/1_4_1.yml +15 -27
- data/spec/cassettes/FatZebra_WebHook/_search/1_2_1.yml +115 -43
- data/spec/cassettes/FatZebra_WebHook/_search/1_2_2.yml +115 -43
- data/spec/cassettes/FatZebra_WebHook/_update/1_3_1.yml +15 -27
- data/spec/cassettes/FatZebra_WebHook/_update/1_3_2.yml +15 -27
- data/spec/lib/fat_zebra/authenticate_spec.rb +187 -0
- data/spec/lib/fat_zebra/card_spec.rb +8 -0
- data/spec/lib/fat_zebra/direct_credit_spec.rb +14 -1
- data/spec/lib/fat_zebra/direct_debit_spec.rb +14 -1
- data/spec/lib/fat_zebra/payment_plan_spec.rb +1 -1
- data/spec/lib/fat_zebra/paypal/authorization_spec.rb +79 -0
- data/spec/lib/fat_zebra/paypal/billing_agreement_spec.rb +62 -0
- data/spec/lib/fat_zebra/paypal/capture_spec.rb +60 -0
- data/spec/lib/fat_zebra/paypal/order_spec.rb +35 -0
- data/spec/lib/fat_zebra/paypal/refund_spec.rb +36 -0
- data/spec/lib/fat_zebra/purchase_spec.rb +3 -3
- data/spec/lib/fat_zebra/refund_spec.rb +37 -17
- data/spec/spec_helper.rb +0 -1
- data/spec/support/payloads.rb +135 -0
- metadata +59 -15
- data/spec/cassettes/FatZebra_Refund/_search/1_3_1.yml +0 -295
- data/spec/cassettes/FatZebra_Refund/_search/1_3_2.yml +0 -295
@@ -38,4 +38,12 @@ describe FatZebra::Card do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
describe '.find', :vcr do
|
42
|
+
let(:create) { FatZebra::Card.create(valid_credit_card_payload) }
|
43
|
+
subject(:card) { FatZebra::Card.find(create.token) }
|
44
|
+
|
45
|
+
it { is_expected.to be_accepted }
|
46
|
+
it { expect(card.token).to eq(create.token) }
|
47
|
+
end
|
48
|
+
|
41
49
|
end
|
@@ -4,7 +4,7 @@ describe FatZebra::DirectCredit do
|
|
4
4
|
|
5
5
|
let(:valid_direct_credit_payload) {{
|
6
6
|
description: 'Confirmation',
|
7
|
-
amount: 42,
|
7
|
+
amount: 42.0,
|
8
8
|
bsb: '123-123',
|
9
9
|
account_name: 'Test',
|
10
10
|
account_number: '012345678'
|
@@ -30,6 +30,18 @@ describe FatZebra::DirectCredit do
|
|
30
30
|
|
31
31
|
it { expect{ direct_credit }.to raise_error(FatZebra::RequestValidationError) }
|
32
32
|
end
|
33
|
+
|
34
|
+
context 'failed with non-float' do
|
35
|
+
let(:valid_direct_credit_payload) {{
|
36
|
+
description: 'Confirmation',
|
37
|
+
amount: 123,
|
38
|
+
bsb: '123-123',
|
39
|
+
account_name: 'Test',
|
40
|
+
account_number: '012345678'
|
41
|
+
}}
|
42
|
+
|
43
|
+
it { expect{ direct_credit }.to raise_error(FatZebra::RequestValidationError) }
|
44
|
+
end
|
33
45
|
end
|
34
46
|
end
|
35
47
|
|
@@ -39,6 +51,7 @@ describe FatZebra::DirectCredit do
|
|
39
51
|
|
40
52
|
it { is_expected.to be_accepted }
|
41
53
|
it { expect(direct_credit.reference).to eq(create.reference) }
|
54
|
+
it { expect(direct_credit.amount).to be_instance_of(Float) }
|
42
55
|
end
|
43
56
|
|
44
57
|
describe '.search', :vcr do
|
@@ -4,7 +4,7 @@ describe FatZebra::DirectDebit do
|
|
4
4
|
|
5
5
|
let(:valid_direct_debit_payload) {{
|
6
6
|
description: 'Confirmation',
|
7
|
-
amount: 42,
|
7
|
+
amount: 42.0,
|
8
8
|
bsb: '123-123',
|
9
9
|
account_name: 'Test',
|
10
10
|
account_number: '012345678'
|
@@ -30,6 +30,18 @@ describe FatZebra::DirectDebit do
|
|
30
30
|
|
31
31
|
it { expect{ direct_debit }.to raise_error(FatZebra::RequestValidationError) }
|
32
32
|
end
|
33
|
+
|
34
|
+
context 'failed with non-float' do
|
35
|
+
let(:valid_direct_debit_payload) {{
|
36
|
+
description: 'Confirmation',
|
37
|
+
amount: 123,
|
38
|
+
bsb: '123-123',
|
39
|
+
account_name: 'Test',
|
40
|
+
account_number: '012345678'
|
41
|
+
}}
|
42
|
+
|
43
|
+
it { expect{ direct_debit }.to raise_error(FatZebra::RequestValidationError) }
|
44
|
+
end
|
33
45
|
end
|
34
46
|
end
|
35
47
|
|
@@ -39,6 +51,7 @@ describe FatZebra::DirectDebit do
|
|
39
51
|
|
40
52
|
it { is_expected.to be_accepted }
|
41
53
|
it { expect(direct_debit.reference).to eq(create.reference) }
|
54
|
+
it { expect(direct_debit.amount).to be_instance_of(Float) }
|
42
55
|
end
|
43
56
|
|
44
57
|
describe '.search', :vcr do
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FatZebra::Paypal::Authorization do
|
4
|
+
|
5
|
+
describe '.find', :vcr do
|
6
|
+
subject(:authorization) { FatZebra::Paypal::Authorization.find(authorization_id) }
|
7
|
+
|
8
|
+
context 'when found' do
|
9
|
+
let(:authorization_id) { '071-PPA-3AM3CXFFKMFYI3QM' }
|
10
|
+
|
11
|
+
it 'returns authorization' do
|
12
|
+
expect(authorization).to be_accepted
|
13
|
+
expect(authorization.id).to eq(authorization_id)
|
14
|
+
expect(authorization.order).to include('PPO')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '.search', :vcr do
|
20
|
+
context 'with date filter' do
|
21
|
+
subject(:authorizations) { FatZebra::Paypal::Authorization.search(from: start) }
|
22
|
+
|
23
|
+
let(:start) { Date.parse('2020-08-05') }
|
24
|
+
|
25
|
+
it 'returns records created after start date' do
|
26
|
+
created_date_check = authorizations.data.map { |rec| DateTime.strptime(rec.transaction_date, '%Y-%m-%dT%H:%M:%S%z').iso8601 >= start.iso8601 }
|
27
|
+
|
28
|
+
is_expected.to be_accepted
|
29
|
+
|
30
|
+
expect(authorizations.data).to be_a(Array)
|
31
|
+
expect(authorizations.data.first).to be_a(FatZebra::Paypal::Authorization)
|
32
|
+
expect(created_date_check.all?).to be(true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#capture', :vcr do
|
38
|
+
subject(:capture_record) { FatZebra::Paypal::Authorization.capture(authorization_id, params_for_capture) }
|
39
|
+
|
40
|
+
let(:authorization_id) { '071-PPA-3AM3CXFFKMFYI3QM' }
|
41
|
+
let(:capture_amount) { 200 }
|
42
|
+
let(:note) { 'test capture $2' }
|
43
|
+
let(:params_for_capture) do
|
44
|
+
{
|
45
|
+
amount: capture_amount,
|
46
|
+
final_Capture: false,
|
47
|
+
note_to_payer: note
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'returns a new capture record' do
|
52
|
+
is_expected.to be_accepted
|
53
|
+
is_expected.to be_successful
|
54
|
+
|
55
|
+
expect(capture_record).to be_a(FatZebra::Paypal::Capture)
|
56
|
+
expect(capture_record.id).to include('PPC')
|
57
|
+
expect(capture_record.order).to include('PPO')
|
58
|
+
expect(capture_record.amount).to eq(capture_amount)
|
59
|
+
expect(capture_record.note_to_payer).to eq(note)
|
60
|
+
expect(capture_record.balance_available_for_capture).to be > 0
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '#void', :vcr do
|
65
|
+
subject(:voided_authorization_record) { FatZebra::Paypal::Authorization.void(authorization_id) }
|
66
|
+
|
67
|
+
let(:authorization_id) { '071-PPA-XB5CXLVNIGCNTB8V' }
|
68
|
+
|
69
|
+
it 'returns a voided capture record' do
|
70
|
+
is_expected.to be_accepted
|
71
|
+
is_expected.to be_successful
|
72
|
+
|
73
|
+
expect(voided_authorization_record).to be_a(FatZebra::Paypal::Authorization)
|
74
|
+
expect(voided_authorization_record.id).to include('PPA')
|
75
|
+
expect(voided_authorization_record.response_code).to eq('00')
|
76
|
+
expect(voided_authorization_record.balance_available_for_capture).to eq(0)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FatZebra::Paypal::BillingAgreement do
|
4
|
+
|
5
|
+
describe '.find', :vcr do
|
6
|
+
subject(:billing_agreement) { FatZebra::Paypal::BillingAgreement.find(id) }
|
7
|
+
|
8
|
+
context 'when found' do
|
9
|
+
let(:id) { '071-PBA-PYG1L6M4CV4DYHTZ' }
|
10
|
+
|
11
|
+
it 'returns billing_agreement' do
|
12
|
+
expect(billing_agreement).to be_accepted
|
13
|
+
expect(billing_agreement.id).to eq(id)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '.search', :vcr do
|
19
|
+
context 'with date filter' do
|
20
|
+
subject(:billing_agreements) { FatZebra::Paypal::BillingAgreement.search(from: start) }
|
21
|
+
|
22
|
+
let(:start) { Date.parse('2020-08-05') }
|
23
|
+
|
24
|
+
it 'returns records created after start date' do
|
25
|
+
created_date_check = billing_agreements.data.map { |rec| DateTime.strptime(rec.created_at, '%Y-%m-%dT%H:%M:%S%z').iso8601 >= start.iso8601 }
|
26
|
+
|
27
|
+
is_expected.to be_accepted
|
28
|
+
|
29
|
+
expect(billing_agreements.data).to be_a(Array)
|
30
|
+
expect(billing_agreements.data.first).to be_a(FatZebra::Paypal::BillingAgreement)
|
31
|
+
expect(created_date_check.all?).to be(true)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '#charge', :vcr do
|
37
|
+
let(:id) { '071-PBA-PYG1L6M4CV4DYHTZ' }
|
38
|
+
|
39
|
+
context 'Valid payload' do
|
40
|
+
subject(:charge) { FatZebra::Paypal::BillingAgreement.charge(id, valid_charge_billing_agreement_payload) }
|
41
|
+
|
42
|
+
it 'returns a new order record' do
|
43
|
+
is_expected.to be_accepted
|
44
|
+
is_expected.to be_successful
|
45
|
+
|
46
|
+
expect(charge).to be_a(FatZebra::Paypal::Order)
|
47
|
+
expect(charge.billing_agreement_id).to eq(id)
|
48
|
+
expect(charge.payment_source).to eq('BILLING_AGREEMENT')
|
49
|
+
expect(charge.id).to include('PPO')
|
50
|
+
expect(charge.captures.count).to eq(1)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'Invalid payload' do
|
55
|
+
subject(:charge) { FatZebra::Paypal::BillingAgreement.charge(id, {}) }
|
56
|
+
|
57
|
+
it 'failed to execute call' do
|
58
|
+
expect{ charge }.to raise_error(FatZebra::RequestValidationError)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FatZebra::Paypal::Capture do
|
4
|
+
|
5
|
+
describe '.find', :vcr do
|
6
|
+
subject(:capture) { FatZebra::Paypal::Capture.find(capture_id) }
|
7
|
+
|
8
|
+
context 'when found' do
|
9
|
+
let(:capture_id) { '071-PPC-TUOHT8YJHBY7SBJU' }
|
10
|
+
|
11
|
+
it 'returns capture' do
|
12
|
+
expect(capture).to be_accepted
|
13
|
+
expect(capture.id).to eq(capture_id)
|
14
|
+
expect(capture.order).to include('PPO')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '.search', :vcr do
|
20
|
+
context 'with date filter' do
|
21
|
+
subject(:captures) { FatZebra::Paypal::Capture.search(from: start) }
|
22
|
+
|
23
|
+
let(:start) { Date.parse('2020-08-05') }
|
24
|
+
|
25
|
+
it 'returns records created after start date' do
|
26
|
+
created_date_check = captures.data.map { |rec| DateTime.strptime(rec.transaction_date, '%Y-%m-%dT%H:%M:%S%z').iso8601 >= start.iso8601 }
|
27
|
+
|
28
|
+
is_expected.to be_accepted
|
29
|
+
|
30
|
+
expect(captures.data).to be_a(Array)
|
31
|
+
expect(captures.data.first).to be_a(FatZebra::Paypal::Capture)
|
32
|
+
expect(created_date_check.all?).to be(true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#refund', :vcr do
|
38
|
+
subject(:refund_record) { FatZebra::Paypal::Capture.refund(capture_id, params_for_refund) }
|
39
|
+
|
40
|
+
let(:capture_id) { '071-PPC-TUOHT8YJHBY7SBJU' }
|
41
|
+
let(:refund_amount) { 100 }
|
42
|
+
let(:params_for_refund) do
|
43
|
+
{
|
44
|
+
amount: refund_amount,
|
45
|
+
note_to_payer: 'test note'
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'returns a new refund record' do
|
50
|
+
is_expected.to be_accepted
|
51
|
+
is_expected.to be_successful
|
52
|
+
|
53
|
+
expect(refund_record).to be_a(FatZebra::Paypal::Refund)
|
54
|
+
expect(refund_record.amount).to eq(refund_amount)
|
55
|
+
expect(refund_record.note_to_payer).to eq('test note')
|
56
|
+
expect(refund_record.id).to include('PPR')
|
57
|
+
expect(refund_record.order).to include('PPO')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FatZebra::Paypal::Order do
|
4
|
+
|
5
|
+
describe '.find', :vcr do
|
6
|
+
subject(:order) { FatZebra::Paypal::Order.find(order_id) }
|
7
|
+
|
8
|
+
context 'when found' do
|
9
|
+
let(:order_id) { '071-PPO-U7RRMGM3OY3V2ZMN' }
|
10
|
+
|
11
|
+
it 'returns order' do
|
12
|
+
expect(order).to be_accepted
|
13
|
+
expect(order.id).to eq(order_id)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '.search', :vcr do
|
19
|
+
context 'with date filter' do
|
20
|
+
subject(:orders) { FatZebra::Paypal::Order.search(from: start) }
|
21
|
+
|
22
|
+
let(:start) { Date.parse('2020-08-05') }
|
23
|
+
|
24
|
+
it 'returns orders created after start date' do
|
25
|
+
created_date_check = orders.data.map { |rec| DateTime.strptime(rec.transaction_date, '%Y-%m-%dT%H:%M:%S%z').iso8601 >= start.iso8601 }
|
26
|
+
|
27
|
+
is_expected.to be_accepted
|
28
|
+
|
29
|
+
expect(orders.data).to be_a(Array)
|
30
|
+
expect(orders.data.first).to be_a(FatZebra::Paypal::Order)
|
31
|
+
expect(created_date_check.all?).to be(true)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FatZebra::Paypal::Refund do
|
4
|
+
|
5
|
+
describe '.find', :vcr do
|
6
|
+
subject(:refund) { FatZebra::Paypal::Refund.find(refund_id) }
|
7
|
+
|
8
|
+
context 'when found' do
|
9
|
+
let(:refund_id) { '071-PPR-SRR9FP7ZKXT9IXU3' }
|
10
|
+
|
11
|
+
it 'returns refund' do
|
12
|
+
expect(refund).to be_accepted
|
13
|
+
expect(refund.id).to eq(refund_id)
|
14
|
+
expect(refund.order).to include('PPO')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '.search', :vcr do
|
20
|
+
context 'with date filter' do
|
21
|
+
subject(:refunds) { FatZebra::Paypal::Refund.search(from: start) }
|
22
|
+
|
23
|
+
let(:start) { Date.parse('2020-08-05') }
|
24
|
+
|
25
|
+
it 'returns all refund records created after start date' do
|
26
|
+
created_date_check = refunds.data.map { |rec| DateTime.strptime(rec.transaction_date, '%Y-%m-%dT%H:%M:%S%z').iso8601 >= start.iso8601 }
|
27
|
+
|
28
|
+
is_expected.to be_accepted
|
29
|
+
|
30
|
+
expect(refunds.data).to be_a(Array)
|
31
|
+
expect(refunds.data.first).to be_a(FatZebra::Paypal::Refund)
|
32
|
+
expect(created_date_check.all?).to be(true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -16,7 +16,7 @@ describe FatZebra::Purchase do
|
|
16
16
|
it { expect(purchase.card_category).to eq('Credit') }
|
17
17
|
it { expect(purchase.card_token).to_not be_empty }
|
18
18
|
it { expect(purchase.addendum_data).to eq({}) }
|
19
|
-
it { expect(purchase.metadata).to eq({}) }
|
19
|
+
it { expect(purchase.metadata).to eq({ "authorization_tracking_id" => "", "original_transaction_reference" => "" }) }
|
20
20
|
it { expect(purchase.response_code).to eq('00') }
|
21
21
|
|
22
22
|
context 'bad request' do
|
@@ -77,7 +77,7 @@ describe FatZebra::Purchase do
|
|
77
77
|
subject(:void) { FatZebra::Purchase.void(purchase.id) }
|
78
78
|
|
79
79
|
it { is_expected.to be_accepted }
|
80
|
-
it { is_expected.
|
80
|
+
it { is_expected.to be_successful }
|
81
81
|
it { expect(void.message).to eq('Voided') }
|
82
82
|
it { expect(void).to be_a(FatZebra::Purchase) }
|
83
83
|
end
|
@@ -87,7 +87,7 @@ describe FatZebra::Purchase do
|
|
87
87
|
before { expect(purchase.void).to be_truthy }
|
88
88
|
|
89
89
|
it { is_expected.to be_accepted }
|
90
|
-
it { is_expected.
|
90
|
+
it { is_expected.to be_successful }
|
91
91
|
it { expect(purchase.message).to eq('Voided') }
|
92
92
|
it { expect(purchase).to be_a(FatZebra::Purchase) }
|
93
93
|
end
|
@@ -8,10 +8,11 @@ describe FatZebra::Refund do
|
|
8
8
|
}}
|
9
9
|
|
10
10
|
describe '.create', :vcr do
|
11
|
+
subject(:refund) { FatZebra::Refund.create(valid_refund_payload) }
|
12
|
+
|
11
13
|
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload) }
|
12
14
|
let(:transaction_id) { purchase.transaction_id }
|
13
15
|
let(:reference) { purchase.reference }
|
14
|
-
subject(:refund) { FatZebra::Refund.create(valid_refund_payload) }
|
15
16
|
|
16
17
|
it { is_expected.to be_accepted }
|
17
18
|
it { is_expected.to be_successful }
|
@@ -32,44 +33,63 @@ describe FatZebra::Refund do
|
|
32
33
|
end
|
33
34
|
|
34
35
|
describe '.find', :vcr do
|
36
|
+
subject(:found_refund) { FatZebra::Refund.find(created_refund.reference) }
|
37
|
+
|
35
38
|
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload) }
|
36
39
|
let(:transaction_id) { purchase.transaction_id }
|
37
40
|
let(:reference) { purchase.reference }
|
38
|
-
let(:
|
39
|
-
|
40
|
-
subject(:direct_credit) { FatZebra::Refund.find(create.reference) }
|
41
|
+
let(:created_refund) { FatZebra::Refund.create(valid_refund_payload) }
|
41
42
|
|
42
43
|
it { is_expected.to be_accepted }
|
43
44
|
it { is_expected.to be_successful }
|
44
|
-
it { expect(
|
45
|
+
it { expect(found_refund.reference).to eq(created_refund.reference) }
|
45
46
|
end
|
46
47
|
|
47
48
|
describe '.search', :vcr do
|
48
|
-
subject(:
|
49
|
+
subject(:found_refunds) { FatZebra::Refund.search }
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
FatZebra::Refund.create(amount:
|
54
|
-
|
51
|
+
let(:created_refunds) do
|
52
|
+
purchase = FatZebra::Purchase.create(valid_purchase_payload)
|
53
|
+
[
|
54
|
+
FatZebra::Refund.create(amount: 1000, reference: SecureRandom.hex, transaction_id: purchase.transaction_id),
|
55
|
+
FatZebra::Refund.create(amount: 1000, reference: SecureRandom.hex, transaction_id: purchase.transaction_id),
|
56
|
+
]
|
55
57
|
end
|
56
58
|
|
57
|
-
|
58
|
-
|
59
|
+
before { created_refunds }
|
60
|
+
|
61
|
+
it "responds with the newly-created refunds" do
|
62
|
+
is_expected.to be_accepted
|
63
|
+
expect(found_refunds.data.map(&:id)).to include(*created_refunds.map(&:id))
|
64
|
+
end
|
59
65
|
end
|
60
66
|
|
61
67
|
describe '#void', :vcr do
|
68
|
+
subject(:refund) { FatZebra::Refund.create(valid_refund_payload).void }
|
69
|
+
|
62
70
|
let(:purchase) { FatZebra::Purchase.create(valid_purchase_payload) }
|
63
71
|
let(:transaction_id) { purchase.transaction_id }
|
64
72
|
let(:reference) { purchase.reference }
|
65
|
-
subject(:refund) { FatZebra::Refund.create(valid_refund_payload) }
|
66
|
-
|
67
|
-
before { refund.void() }
|
68
73
|
|
69
74
|
it { is_expected.to be_accepted }
|
70
|
-
it { is_expected.
|
75
|
+
it { is_expected.to be_successful }
|
71
76
|
it { expect(refund.message).to eq('Voided') }
|
72
77
|
it { expect(refund).to be_a(FatZebra::Refund) }
|
73
78
|
end
|
74
79
|
|
80
|
+
describe '#declined?' do
|
81
|
+
subject { refund.declined? }
|
82
|
+
|
83
|
+
let(:refund) { described_class.initialize_from({ 'response' => { 'refunded' => refunded } }) }
|
84
|
+
|
85
|
+
context do
|
86
|
+
let(:refunded) { 'Declined' }
|
87
|
+
it { is_expected.to be(true) }
|
88
|
+
end
|
89
|
+
|
90
|
+
context do
|
91
|
+
let(:refunded) { 'Approved' }
|
92
|
+
it { is_expected.to be(false) }
|
93
|
+
end
|
94
|
+
end
|
75
95
|
end
|