diff options
Diffstat (limited to 'billing/test/functional')
-rw-r--r-- | billing/test/functional/customer_controller_test.rb | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/billing/test/functional/customer_controller_test.rb b/billing/test/functional/customer_controller_test.rb index af09a41..9bf2b5e 100644 --- a/billing/test/functional/customer_controller_test.rb +++ b/billing/test/functional/customer_controller_test.rb @@ -34,12 +34,13 @@ class CustomerControllerTest < ActionController::TestCase test "confirm user creation" do login - to_confirm = prepare_confirmation :create_customer_data, - customer: FactoryGirl.attributes_for(:braintree_customer), - redirect_url: confirm_customer_url + Braintree::TransparentRedirect.expects(:confirm).returns(success_response) + # to_confirm = prepare_confirmation :create_customer_data, + # customer: FactoryGirl.attributes_for(:braintree_customer), + # redirect_url: confirm_customer_url assert_difference("Customer.count") do - post :confirm, to_confirm + post :confirm, braintree: :query end assert_response :success @@ -49,9 +50,10 @@ class CustomerControllerTest < ActionController::TestCase end test "customer update" do - @customer = FactoryGirl.create :customer_with_payment_info - login @customer.user - Braintree::TransparentRedirect.expects(:confirm).returns(success_response) + customer = FactoryGirl.create :customer_with_payment_info + login customer.user + Braintree::TransparentRedirect.expects(:confirm). + returns(success_response(customer)) assert_no_difference("Customer.count") do post :confirm, query: :from_braintree @@ -60,7 +62,7 @@ class CustomerControllerTest < ActionController::TestCase assert_response :success assert result = assigns(:result) assert result.success? - assert_equal @customer, result.customer + assert_equal customer.braintree_customer, result.customer end test "failed user creation" do @@ -97,37 +99,23 @@ class CustomerControllerTest < ActionController::TestCase assert_template :edit end - def prepare_confirmation(type, data) - parse_redirect post_transparent_redirect(type, data) - end - def failure_response stub success?: false, errors: stub(for: nil, size: 0), params: {} end - def success_response + def success_response(customer = nil) stub success?: true, - customer: @customer.with_braintree_data! - end - - def post_transparent_redirect(type, data) - params = data.dup - params[:tr_data] = Braintree::TransparentRedirect.send(type, params) - post_transparent_redirect_params(params) + customer: braintree_customer(customer) end - def post_transparent_redirect_params(params) - uri = URI.parse(Braintree::TransparentRedirect.url) - Net::HTTP.start(uri.host, uri.port) do |http| - http.post(uri.path, Rack::Utils.build_nested_query(params)) + def braintree_customer(customer) + if customer + customer.braintree_customer + else + FactoryGirl.build :braintree_customer end end - def parse_redirect(response) - uri = URI.parse(response['Location']) - Braintree::Util.parse_query_string uri.query - end - end |