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.



5
6
7
8
9
10
11
12
13
# File 'lib/fake_braintree/credit_card.rb', line 5

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



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/fake_braintree/credit_card.rb', line 15

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

#to_xmlObject



40
41
42
# File 'lib/fake_braintree/credit_card.rb', line 40

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

#updateObject



31
32
33
34
35
36
37
38
# File 'lib/fake_braintree/credit_card.rb', line 31

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)


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

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