123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- # frozen_string_literal: true
- require 'test_helper'
- class RecurringApplicationChargeTest < Test::Unit::TestCase
- def test_recurring_application_charges_create
- fake(
- "recurring_application_charges", method: :post, status: 201, body: load_fixture('recurring_application_charge')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.create(
- name: "Default Plan",
- price: 10.0,
- return_url: "http://test.com/confirm"
- )
- assert_equal(
- 'http://apple.myshopify.com/admin/charges/654381177/confirm_recurring_application_charge?' \
- 'signature=BAhpBHkQASc%3D--419fc7424f8c290ac2b21b9004ed223e35b52164',
- charge.confirmation_url
- )
- end
- def test_get_recurring_application_charges
- fake(
- "recurring_application_charges/654381177",
- method: :get,
- status: 201,
- body: load_fixture('recurring_application_charge')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.find(654381177)
- assert_equal("Super Duper Plan", charge.name)
- end
- def test_list_recurring_application_charges
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.find(:all)
- assert_equal("Super Mega Plan", charge.last.name)
- end
- def test_list_since_recurring_application_charges
- fake(
- "recurring_application_charges.json?since_id=64512345",
- extension: false,
- method: :get,
- status: 201,
- body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.find(:all, params: { since_id: '64512345' })
- assert_equal("Super Mega Plan", charge.last.name)
- end
- def test_list_fields_recurring_application_charges
- fake(
- "recurring_application_charges.json?fields=name",
- extension: false,
- method: :get,
- status: 201,
- body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.find(:all, params: { fields: 'name' })
- assert_equal("Super Mega Plan", charge.last.name)
- end
- def test_pending_recurring_application_charge
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.pending
- assert_equal("Super Mega Plan2", charge.last.name)
- end
- def test_cancelled_recurring_application_charge
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.cancelled
- assert_equal("Super Mega Plan3", charge.last.name)
- end
- def test_accepted_recurring_application_charge
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.accepted
- assert_equal("Super Mega Plan4", charge.first.name)
- assert_equal("Super Mega Plan", charge.last.name)
- end
- def test_declined_recurring_application_charge
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.declined
- assert_equal("Super Mega Plan5", charge.last.name)
- end
- def test_activate_recurring_application_charge
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- fake("recurring_application_charges/455696199/activate", method: :post, status: 200, body: "{}")
- charge = ShopifyAPI::RecurringApplicationCharge.accepted
- assert(charge.last.activate)
- end
- def test_adjust_recurring_application_charge
- fake(
- "recurring_application_charges/654381177",
- method: :get,
- status: 201,
- body: load_fixture('recurring_application_charge')
- )
- fake(
- "recurring_application_charges/654381177/customize.json?recurring_application_charge%5Bcapped_amount%5D=200",
- method: :put,
- body: load_fixture('recurring_application_charge_adjustment'),
- extension: false
- )
- charge = ShopifyAPI::RecurringApplicationCharge.find(654381177)
- assert(charge.customize(capped_amount: 200))
- end
- def test_cancel_recurring_application_charge
- fake(
- "recurring_application_charges", method: :get, status: 201, body: load_fixture('recurring_application_charges')
- )
- fake("recurring_application_charges/455696194", method: :delete, status: 200, body: "{}")
- charge = ShopifyAPI::RecurringApplicationCharge.current
- assert(charge.cancel)
- end
- def test_usage_charges_recurring_application_charge_found
- fake(
- "recurring_application_charges/654381177",
- method: :get,
- status: 201,
- body: load_fixture('recurring_application_charge')
- )
- fake(
- "recurring_application_charges/654381177/usage_charges",
- method: :get,
- status: 201,
- body: load_fixture('usage_charges')
- )
- charge = ShopifyAPI::RecurringApplicationCharge.find(654381177)
- usage_charges = charge.usage_charges
- assert_equal(2, usage_charges.length)
- end
- def test_usage_charges_recurring_application_charge_not_found
- fake(
- "recurring_application_charges/654381177",
- method: :get,
- status: 201,
- body: load_fixture('recurring_application_charge')
- )
- fake("recurring_application_charges/654381177/usage_charges", method: :get, status: 201, body: "[]")
- charge = ShopifyAPI::RecurringApplicationCharge.find(654381177)
- usage_charges = charge.usage_charges
- assert_equal(0, usage_charges.length)
- end
- def test_no_recurring_application_charge_found
- fake("recurring_application_charges", body: { recurring_application_charges: [] }.to_json)
- assert_equal(0, ShopifyAPI::RecurringApplicationCharge.all.count)
- assert_nil(ShopifyAPI::RecurringApplicationCharge.current)
- assert_equal([], ShopifyAPI::RecurringApplicationCharge.pending)
- end
- def test_recurring_application_charge_not_found_error
- fake("recurring_application_charges", body: '{"errors":"Not Found"}', status: 404)
- assert_nil(ShopifyAPI::RecurringApplicationCharge.all)
- assert_nil(ShopifyAPI::RecurringApplicationCharge.current)
- assert_equal([], ShopifyAPI::RecurringApplicationCharge.pending)
- end
- end
|