require 'test_helper' require 'fake_braintree' class CustomerWithPaymentInfoTest < ActiveSupport::TestCase include StubRecordHelper setup do @user = find_record :user @customer = FactoryGirl.build(:customer_with_payment_info, user: @user) end test "has payment_info" do assert @customer.braintree_customer_id assert @customer.has_payment_info? end test "constructs customer with braintree data" do @customer.with_braintree_data! assert_equal 'Big', @customer.first_name assert_equal 'Spender', @customer.last_name assert_equal 1, @customer.credit_cards.size assert_equal Hash.new, @customer.custom_fields end test "can access braintree_customer after reload" do @customer.save @customer = Customer.find_by_user_id(@customer.user_id) @customer.with_braintree_data! assert_equal 'Big', @customer.first_name assert_equal 'Spender', @customer.last_name assert_equal 1, @customer.credit_cards.size assert_equal Hash.new, @customer.custom_fields @customer.destroy end test "sets default_credit_card" do @customer.with_braintree_data! assert_equal @customer.credit_cards.first, @customer.default_credit_card end end