Class: FakeBraintree::CreditCard

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/fake_braintree/credit_card.rb

Instance Method Summary collapse

Methods included from Helpers

#create_id, #gzip, #gzipped_response, #md5

Constructor Details

#initialize(credit_card_hash_from_params, options) ⇒ CreditCard

Returns a new instance of CreditCard.



8
9
10
11
12
13
14
15
16
# File 'lib/fake_braintree/credit_card.rb', line 8

def initialize(credit_card_hash_from_params, options)
  set_up_credit_card(credit_card_hash_from_params, options)
  set_billing_address
  set_bin
  set_card_type
  set_expiration_month_and_year
  set_last_4
  set_unique_number_identifier
end

Instance Method Details

#createObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/fake_braintree/credit_card.rb', line 18

def create
  if valid_number?
    if token.nil?
      @credit_card['token'] = generate_token
    end
    FakeBraintree.registry.credit_cards[token] = @credit_card
    if customer = FakeBraintree.registry.customers[@credit_card['customer_id']]
      customer['credit_cards'] << @credit_card
      update_default_card
    end
    response_for_updated_card
  else
    response_for_invalid_card
  end
end

#deleteObject



43
44
45
46
47
48
49
50
# File 'lib/fake_braintree/credit_card.rb', line 43

def delete
  if credit_card_exists_in_registry?
    delete_credit_card
    deletion_response
  else
    response_for_card_not_found
  end
end

#to_xmlObject



52
53
54
# File 'lib/fake_braintree/credit_card.rb', line 52

def to_xml
  @credit_card.to_xml(root: 'credit_card')
end

#updateObject



34
35
36
37
38
39
40
41
# File 'lib/fake_braintree/credit_card.rb', line 34

def update
  if credit_card_exists_in_registry?
    update_existing_credit_card
    response_for_updated_card
  else
    response_for_card_not_found
  end
end

#valid_number?Boolean

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
# File 'lib/fake_braintree/credit_card.rb', line 56

def valid_number?
  if FakeBraintree.decline_all_cards?
    false
  elsif FakeBraintree.verify_all_cards
    FakeBraintree::VALID_CREDIT_CARDS.include?(@credit_card['number'])
  else
    true
  end
end