Sha256: c169dfbb400cf9401d282bd04e918486471e6bd4e53be24245c554c905920d8d

Contents?: true

Size: 1.57 KB

Versions: 62

Compression:

Stored size: 1.57 KB

Contents

require 'test_helper'

module Workarea
  class Payment
    class Refund
      class StoreCreditTest < TestCase
        def profile
          @profile ||= create_payment_profile(store_credit: 15.to_m)
        end

        def payment
          @payment ||= create_payment(profile: profile)
        end

        def tender
          @tender ||= begin
            payment.set_store_credit
            payment.store_credit
          end
        end

        def test_complete!
          transaction = tender.build_transaction(amount: 5.to_m)
          operation = StoreCredit.new(tender, transaction)

          operation.complete!
          profile.reload

          assert_equal(20.to_m, profile.store_credit)
          assert(transaction.success?)

          assert_equal(
            ActiveMerchant::Billing::Response,
            transaction.response.class
          )
        end

        def test_cancel!
          transaction = tender.build_transaction(amount: 5.to_m, success: false)
          operation = StoreCredit.new(tender, transaction)

          operation.cancel!
          profile.reload

          assert_equal(15.to_m, profile.store_credit)

          transaction = tender.build_transaction(amount: 5.to_m, success: true)
          operation = StoreCredit.new(tender, transaction)

          operation.cancel!
          profile.reload

          assert_equal(10.to_m, profile.store_credit)
          assert(transaction.success?)
          assert_equal(
            ActiveMerchant::Billing::Response,
            transaction.cancellation.class
          )
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.13 test/models/workarea/payment/refund/store_credit_test.rb
workarea-core-3.4.12 test/models/workarea/payment/refund/store_credit_test.rb