fat_zebra 3.0.11 → 3.2.3
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 +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
         
     |