From fa91812910e49a956ad8fa6c68b0955c97b8cb48 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Thu, 6 Nov 2014 17:43:10 -0800 Subject: [PATCH] add tests for upgrade controller --- app/controllers/user_upgrades_controller.rb | 3 +- .../user_upgrades_controller_test.rb | 112 +++++++++++- .../vcr_cassettes/stripe-basic-to-gold.yml | 169 ++++++++++++++++++ .../vcr_cassettes/stripe-basic-to-plat.yml | 140 +++++++++++++++ .../vcr_cassettes/stripe-gold-to-plat-bad.yml | 66 +++++++ .../vcr_cassettes/stripe-gold-to-plat.yml | 140 +++++++++++++++ 6 files changed, 626 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml create mode 100644 test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml create mode 100644 test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml create mode 100644 test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml diff --git a/app/controllers/user_upgrades_controller.rb b/app/controllers/user_upgrades_controller.rb index 64ac1c2ae..52db53a94 100644 --- a/app/controllers/user_upgrades_controller.rb +++ b/app/controllers/user_upgrades_controller.rb @@ -15,7 +15,8 @@ class UserUpgradesController < ApplicationController cost = 2000 else - raise "Invalid desc" + render :text => "invalid desc", :status => 422 + return end @user = CurrentUser.user diff --git a/test/controllers/user_upgrades_controller_test.rb b/test/controllers/user_upgrades_controller_test.rb index 23b973d29..021142e39 100644 --- a/test/controllers/user_upgrades_controller_test.rb +++ b/test/controllers/user_upgrades_controller_test.rb @@ -1,7 +1,113 @@ require 'test_helper' class UserUpgradesControllerTest < ActionController::TestCase - # test "the truth" do - # assert true - # end + def get_stripe_token + Stripe::Token.create( + :card => { + :number => "4242424242424242", + :exp_month => 1, + :exp_year => 1.year.from_now.year, + :cvc => "123" + } + ) + end + + setup do + @user = FactoryGirl.create(:user) + end + + context "#create" do + context "for basic -> gold" do + should "promote the account" do + VCR.use_cassette("stripe-basic-to-gold", :record => :once) do + post :create, {:stripeToken => get_stripe_token.id, :desc => "Upgrade to Gold", :email => "nowhere@donmai.us"}, {:user_id => @user.id} + end + assert_redirected_to user_upgrade_path + @user.reload + assert_equal(User::Levels::GOLD, @user.level) + end + end + + context "for basic -> platinum" do + should "promote the account" do + VCR.use_cassette("stripe-basic-to-plat", :record => :once) do + post :create, {:stripeToken => get_stripe_token.id, :desc => "Upgrade to Platinum", :email => "nowhere@donmai.us"}, {:user_id => @user.id} + end + assert_redirected_to user_upgrade_path + @user.reload + assert_equal(User::Levels::PLATINUM, @user.level) + end + end + + context "for gold -> platinum" do + context "when the user is gold" do + setup do + @user.update_attribute(:level, User::Levels::GOLD) + end + + should "promote the account" do + VCR.use_cassette("stripe-gold-to-plat", :record => :once) do + post :create, {:stripeToken => get_stripe_token.id, :desc => "Upgrade Gold to Platinum", :email => "nowhere@donmai.us"}, {:user_id => @user.id} + end + assert_redirected_to user_upgrade_path + @user.reload + assert_equal(User::Levels::PLATINUM, @user.level) + end + end + + context "when the user is not gold" do + should "fail" do + VCR.use_cassette("stripe-gold-to-plat-bad", :record => :once) do + post :create, {:stripeToken => get_stripe_token.id, :desc => "Upgrade Gold to Platinum", :email => "nowhere@donmai.us"}, {:user_id => @user.id} + end + assert_response 422 + @user.reload + assert_equal(User::Levels::MEMBER, @user.level) + end + end + end + end + + context "#new" do + context "for safe mode" do + setup do + CurrentUser.stubs(:safe_mode?).returns(true) + end + + should "render" do + get :new, {}, {:user_id => @user.id} + assert_response :success + end + end + + context "for default mode" do + should "render" do + get :new, {}, {:user_id => @user.id} + assert_response :success + end + end + end + + context "#show" do + context "with disable=true" do + should "render" do + get :show, {}, {:user_id => @user.id}, {:disable => true} + assert_response :success + end + end + + context "with success=true" do + should "render" do + get :show, {}, {:user_id => @user.id}, {:success => true} + assert_response :success + end + end + + context "with error=true" do + should "render" do + get :show, {}, {:user_id => @user.id}, {:error => true} + assert_response :success + end + end + end end diff --git a/test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml b/test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml new file mode 100644 index 000000000..1fa1c7d7f --- /dev/null +++ b/test/fixtures/vcr_cassettes/stripe-basic-to-gold.yml @@ -0,0 +1,169 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.stripe.com/v1/tokens + body: + encoding: US-ASCII + string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '81' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:31 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '623' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - ea64b1f2-9b94-4b6f-bb1c-c6e3784007b3 + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"tok_14w1lj2Od3yiQVdJdZtBSbXI\",\n \"livemode\": false,\n + \ \"created\": 1415324551,\n \"used\": false,\n \"object\": \"token\",\n + \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1lj2Od3yiQVdJ1fiG5eGJ\",\n + \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n + \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n + \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": + null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": + null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:31 GMT +- request: + method: post + uri: https://api.stripe.com/v1/charges + body: + encoding: US-ASCII + string: amount=2000¤cy=usd&card=tok_14w1lj2Od3yiQVdJdZtBSbXI&description=Upgrade%20to%20Gold + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '90' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:32 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '1362' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - dad96b4a-bcc7-4537-9ddb-dd3b6093a0d2 + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"ch_14w1lk2Od3yiQVdJuaBrKoSb\",\n \"object\": \"charge\",\n + \ \"created\": 1415324552,\n \"livemode\": false,\n \"paid\": true,\n \"amount\": + 2000,\n \"currency\": \"usd\",\n \"refunded\": false,\n \"card\": {\n \"id\": + \"card_14w1lj2Od3yiQVdJ1fiG5eGJ\",\n \"object\": \"card\",\n \"last4\": + \"4242\",\n \"brand\": \"Visa\",\n \"funding\": \"credit\",\n \"exp_month\": + 1,\n \"exp_year\": 2015,\n \"fingerprint\": \"xrSmurPsZCJllxXR\",\n + \ \"country\": \"US\",\n \"name\": null,\n \"address_line1\": null,\n + \ \"address_line2\": null,\n \"address_city\": null,\n \"address_state\": + null,\n \"address_zip\": null,\n \"address_country\": null,\n \"cvc_check\": + \"pass\",\n \"address_line1_check\": null,\n \"address_zip_check\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n },\n \"captured\": + true,\n \"refunds\": {\n \"object\": \"list\",\n \"total_count\": 0,\n + \ \"has_more\": false,\n \"url\": \"/v1/charges/ch_14w1lk2Od3yiQVdJuaBrKoSb/refunds\",\n + \ \"data\": []\n },\n \"balance_transaction\": \"txn_14w1lk2Od3yiQVdJ4tGMRyec\",\n + \ \"failure_message\": null,\n \"failure_code\": null,\n \"amount_refunded\": + 0,\n \"customer\": null,\n \"invoice\": null,\n \"description\": \"Upgrade + to Gold\",\n \"dispute\": null,\n \"metadata\": {},\n \"statement_description\": + null,\n \"fraud_details\": {\n \"stripe_report\": null,\n \"user_report\": + null\n },\n \"receipt_email\": null,\n \"receipt_number\": null,\n \"shipping\": + null\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:32 GMT +- request: + method: post + uri: https://collector.newrelic.com/agent_listener/14//get_redirect_host?marshal_format=json + body: + encoding: UTF-8 + string: ! '[]' + headers: + Content-Encoding: + - identity + Host: + - collector.newrelic.com + Accept: + - ! '*/*' + User-Agent: + - NewRelic-RubyAgent/3.9.6.257 (ruby 1.9.3 x86_64-darwin13.1.0) zlib/1.2.5 + Content-Type: + - application/octet-stream + response: + status: + code: 200 + message: OK + headers: + Content-Length: + - '133' + body: + encoding: US-ASCII + string: ! '{"exception":{"message":"Invalid license key, please contact support@newrelic.com","error_type":"NewRelic::Agent::LicenseException"}}' + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:32 GMT +recorded_with: VCR 2.9.0 diff --git a/test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml b/test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml new file mode 100644 index 000000000..0f3787329 --- /dev/null +++ b/test/fixtures/vcr_cassettes/stripe-basic-to-plat.yml @@ -0,0 +1,140 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.stripe.com/v1/tokens + body: + encoding: US-ASCII + string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '81' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:32 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '623' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - 1110fe22-457d-495f-9a80-1d5d595cc99c + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"tok_14w1lk2Od3yiQVdJJ3XzlTSH\",\n \"livemode\": false,\n + \ \"created\": 1415324552,\n \"used\": false,\n \"object\": \"token\",\n + \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1lk2Od3yiQVdJ8ddU76Aq\",\n + \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n + \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n + \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": + null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": + null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:32 GMT +- request: + method: post + uri: https://api.stripe.com/v1/charges + body: + encoding: US-ASCII + string: amount=4000¤cy=usd&card=tok_14w1lk2Od3yiQVdJJ3XzlTSH&description=Upgrade%20to%20Platinum + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '94' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:32 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '1366' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - fcf2b1e8-ce3c-4f1d-8742-a422cc0a1d3a + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"ch_14w1lk2Od3yiQVdJAQwoEXgF\",\n \"object\": \"charge\",\n + \ \"created\": 1415324552,\n \"livemode\": false,\n \"paid\": true,\n \"amount\": + 4000,\n \"currency\": \"usd\",\n \"refunded\": false,\n \"card\": {\n \"id\": + \"card_14w1lk2Od3yiQVdJ8ddU76Aq\",\n \"object\": \"card\",\n \"last4\": + \"4242\",\n \"brand\": \"Visa\",\n \"funding\": \"credit\",\n \"exp_month\": + 1,\n \"exp_year\": 2015,\n \"fingerprint\": \"xrSmurPsZCJllxXR\",\n + \ \"country\": \"US\",\n \"name\": null,\n \"address_line1\": null,\n + \ \"address_line2\": null,\n \"address_city\": null,\n \"address_state\": + null,\n \"address_zip\": null,\n \"address_country\": null,\n \"cvc_check\": + \"pass\",\n \"address_line1_check\": null,\n \"address_zip_check\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n },\n \"captured\": + true,\n \"refunds\": {\n \"object\": \"list\",\n \"total_count\": 0,\n + \ \"has_more\": false,\n \"url\": \"/v1/charges/ch_14w1lk2Od3yiQVdJAQwoEXgF/refunds\",\n + \ \"data\": []\n },\n \"balance_transaction\": \"txn_14w1lk2Od3yiQVdJjDRDaKkC\",\n + \ \"failure_message\": null,\n \"failure_code\": null,\n \"amount_refunded\": + 0,\n \"customer\": null,\n \"invoice\": null,\n \"description\": \"Upgrade + to Platinum\",\n \"dispute\": null,\n \"metadata\": {},\n \"statement_description\": + null,\n \"fraud_details\": {\n \"stripe_report\": null,\n \"user_report\": + null\n },\n \"receipt_email\": null,\n \"receipt_number\": null,\n \"shipping\": + null\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:32 GMT +recorded_with: VCR 2.9.0 diff --git a/test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml b/test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml new file mode 100644 index 000000000..b7a12f94b --- /dev/null +++ b/test/fixtures/vcr_cassettes/stripe-gold-to-plat-bad.yml @@ -0,0 +1,66 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.stripe.com/v1/tokens + body: + encoding: US-ASCII + string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '81' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:34 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '623' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - 131d3a38-43aa-4ae1-9740-e745bbec695d + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"tok_14w1lm2Od3yiQVdJsgew67au\",\n \"livemode\": false,\n + \ \"created\": 1415324554,\n \"used\": false,\n \"object\": \"token\",\n + \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1ll2Od3yiQVdJbLrKD9YV\",\n + \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n + \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n + \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": + null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": + null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:33 GMT +recorded_with: VCR 2.9.0 diff --git a/test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml b/test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml new file mode 100644 index 000000000..6f0bf6a82 --- /dev/null +++ b/test/fixtures/vcr_cassettes/stripe-gold-to-plat.yml @@ -0,0 +1,140 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.stripe.com/v1/tokens + body: + encoding: US-ASCII + string: card[number]=4242424242424242&card[exp_month]=1&card[exp_year]=2015&card[cvc]=123 + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '81' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:33 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '623' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - 26c76792-4ff5-4154-b226-a309d79bdb0e + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"tok_14w1ll2Od3yiQVdJ6kLDgI43\",\n \"livemode\": false,\n + \ \"created\": 1415324553,\n \"used\": false,\n \"object\": \"token\",\n + \ \"type\": \"card\",\n \"card\": {\n \"id\": \"card_14w1ll2Od3yiQVdJy4qdhKMh\",\n + \ \"object\": \"card\",\n \"last4\": \"4242\",\n \"brand\": \"Visa\",\n + \ \"funding\": \"credit\",\n \"exp_month\": 1,\n \"exp_year\": 2015,\n + \ \"fingerprint\": \"xrSmurPsZCJllxXR\",\n \"country\": \"US\",\n \"name\": + null,\n \"address_line1\": null,\n \"address_line2\": null,\n \"address_city\": + null,\n \"address_state\": null,\n \"address_zip\": null,\n \"address_country\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n }\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:33 GMT +- request: + method: post + uri: https://api.stripe.com/v1/charges + body: + encoding: US-ASCII + string: amount=2000¤cy=usd&card=tok_14w1ll2Od3yiQVdJ6kLDgI43&description=Upgrade%20Gold%20to%20Platinum + headers: + Accept: + - ! '*/*; q=0.5, application/xml' + Accept-Encoding: + - gzip, deflate + User-Agent: + - Stripe/v1 RubyBindings/1.16.0 + Authorization: + - Bearer sk_test_kHviyCxbt9kBxeu46TeefJQH + Content-Type: + - application/x-www-form-urlencoded + X-Stripe-Client-User-Agent: + - ! '{"bindings_version":"1.16.0","lang":"ruby","lang_version":"1.9.3 p327 (2012-11-10)","platform":"x86_64-darwin13.1.0","publisher":"stripe","uname":"Darwin + ayi-ltm1.internal.salesforce.com 13.4.0 Darwin Kernel Version 13.4.0: Sun + Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64"}' + Content-Length: + - '101' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Fri, 07 Nov 2014 01:42:33 GMT + Content-Type: + - application/json;charset=utf-8 + Content-Length: + - '1371' + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, POST, HEAD, OPTIONS, DELETE + Access-Control-Max-Age: + - '300' + Cache-Control: + - no-cache, no-store + Request-Id: + - a3e5cda9-d4c4-47f6-8c4f-9f3638399300 + Stripe-Version: + - '2014-10-07' + Strict-Transport-Security: + - max-age=31556926; includeSubDomains + body: + encoding: US-ASCII + string: ! "{\n \"id\": \"ch_14w1ll2Od3yiQVdJcu6dUs9x\",\n \"object\": \"charge\",\n + \ \"created\": 1415324553,\n \"livemode\": false,\n \"paid\": true,\n \"amount\": + 2000,\n \"currency\": \"usd\",\n \"refunded\": false,\n \"card\": {\n \"id\": + \"card_14w1ll2Od3yiQVdJy4qdhKMh\",\n \"object\": \"card\",\n \"last4\": + \"4242\",\n \"brand\": \"Visa\",\n \"funding\": \"credit\",\n \"exp_month\": + 1,\n \"exp_year\": 2015,\n \"fingerprint\": \"xrSmurPsZCJllxXR\",\n + \ \"country\": \"US\",\n \"name\": null,\n \"address_line1\": null,\n + \ \"address_line2\": null,\n \"address_city\": null,\n \"address_state\": + null,\n \"address_zip\": null,\n \"address_country\": null,\n \"cvc_check\": + \"pass\",\n \"address_line1_check\": null,\n \"address_zip_check\": + null,\n \"dynamic_last4\": null,\n \"customer\": null\n },\n \"captured\": + true,\n \"refunds\": {\n \"object\": \"list\",\n \"total_count\": 0,\n + \ \"has_more\": false,\n \"url\": \"/v1/charges/ch_14w1ll2Od3yiQVdJcu6dUs9x/refunds\",\n + \ \"data\": []\n },\n \"balance_transaction\": \"txn_14w1ll2Od3yiQVdJ34rCa0xY\",\n + \ \"failure_message\": null,\n \"failure_code\": null,\n \"amount_refunded\": + 0,\n \"customer\": null,\n \"invoice\": null,\n \"description\": \"Upgrade + Gold to Platinum\",\n \"dispute\": null,\n \"metadata\": {},\n \"statement_description\": + null,\n \"fraud_details\": {\n \"stripe_report\": null,\n \"user_report\": + null\n },\n \"receipt_email\": null,\n \"receipt_number\": null,\n \"shipping\": + null\n}\n" + http_version: + recorded_at: Fri, 07 Nov 2014 01:42:33 GMT +recorded_with: VCR 2.9.0