lib/testing/credit_card_numbers.ex
      
      
        
        defmodule Braintree.Testing.CreditCardNumbers do
  @moduledoc """
  The functions contained in this module provide credit card numbers that
  should be used when working in the sandbox environment. The sandbox will not
  accept any credit card numbers other than the ones listed below.
  See http://www.braintreepayments.com/docs/ruby/reference/sandbox
  """
  def all do
    am_exes() ++
      carte_blanches() ++
      diners_clubs() ++ discovers() ++ jcbs() ++ master_cards() ++ unknowns() ++ visas()
  end
  def am_exes do
    ~w(378282246310005 371449635398431 378734493671000)
  end
  def carte_blanches do
    ~w(30569309025904)
  end
  def diners_clubs do
    ~w(38520000023237)
  end
  def discovers do
    ~w(6011111111111117 6011000990139424)
  end
  def jcbs do
    ~w(3530111333300000 3566002020360505)
  end
  def master_cards do
    ~w(5105105105105100 5555555555554444)
  end
  def unknowns do
    ~w(1000000000000008)
  end
  def visas do
    ~w(4009348888881881 4012888888881881 4111111111111111 4000111111111115 4500600000000061)
  end
  defmodule FailsSandboxVerification do
    @moduledoc """
    These are vendor specific numbers that will always fail verification.
    """
    def all do
      [am_ex(), discover(), master_card(), visa()]
    end
    def am_ex do
      "378734493671000"
    end
    def discover do
      "6011000990139424"
    end
    def master_card do
      "5105105105105100"
    end
    def visa do
      "4000111111111115"
    end
  end
end