Sha256: 3259cdabfa01f7c9014f5005c9deaa9cc70125e4d1be4587d0a3bf6d1f8d2b4a

Contents?: true

Size: 738 Bytes

Versions: 2

Compression:

Stored size: 738 Bytes

Contents

require "active_support/core_ext/hash/conversions"

module FakeBraintree
  class Transaction
    def initialize(data, id)
      @data = data
      @id = id
    end

    def create
      response = {
        "id" => id,
        "amount" => data["amount"],
        "status" => status,
        "type" => "sale"
      }

      FakeBraintree.registry.transactions[id] = response
      response
    end

    private

    def status
      if submit_for_settlement?
        "submitted_for_settlement"
      else
        "authorized"
      end
    end

    def submit_for_settlement?
      options.fetch("submit_for_settlement", false) == true
    end

    def options
      data.fetch("options", {})
    end

    attr_reader :data, :id
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fake_braintree-0.8.0 lib/fake_braintree/transaction.rb
fake_braintree-0.7.0 lib/fake_braintree/transaction.rb