shopify_client 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +30 -0
  6. data/Rakefile +11 -0
  7. data/lib/shopify_client.rb +10 -0
  8. data/lib/shopify_client/api/custom_collection.rb +22 -0
  9. data/lib/shopify_client/api/order.rb +22 -0
  10. data/lib/shopify_client/api/product.rb +21 -0
  11. data/lib/shopify_client/api/recurring_application_charge.rb +43 -0
  12. data/lib/shopify_client/api/script_tag.rb +35 -0
  13. data/lib/shopify_client/api/shop.rb +16 -0
  14. data/lib/shopify_client/api/smart_collection.rb +22 -0
  15. data/lib/shopify_client/api/webhook.rb +34 -0
  16. data/lib/shopify_client/base.rb +57 -0
  17. data/lib/shopify_client/client.rb +91 -0
  18. data/lib/shopify_client/custom_collection.rb +28 -0
  19. data/lib/shopify_client/error.rb +13 -0
  20. data/lib/shopify_client/error/client_error.rb +23 -0
  21. data/lib/shopify_client/error/server_error.rb +15 -0
  22. data/lib/shopify_client/image.rb +13 -0
  23. data/lib/shopify_client/order.rb +29 -0
  24. data/lib/shopify_client/product.rb +22 -0
  25. data/lib/shopify_client/recurring_application_charge.rb +20 -0
  26. data/lib/shopify_client/request/content_type.rb +20 -0
  27. data/lib/shopify_client/response/parse_json.rb +22 -0
  28. data/lib/shopify_client/response/raise_error.rb +23 -0
  29. data/lib/shopify_client/script_tag.rb +19 -0
  30. data/lib/shopify_client/shop.rb +22 -0
  31. data/lib/shopify_client/smart_collection.rb +28 -0
  32. data/lib/shopify_client/version.rb +3 -0
  33. data/lib/shopify_client/webhook.rb +21 -0
  34. data/shopify_client.gemspec +28 -0
  35. data/test/fixtures/custom_collection.json +18 -0
  36. data/test/fixtures/custom_collections.json +19 -0
  37. data/test/fixtures/order.json +274 -0
  38. data/test/fixtures/orders.json +276 -0
  39. data/test/fixtures/product.json +140 -0
  40. data/test/fixtures/products.json +170 -0
  41. data/test/fixtures/recurring_application_charge.json +18 -0
  42. data/test/fixtures/recurring_application_charges.json +34 -0
  43. data/test/fixtures/script_tag.json +9 -0
  44. data/test/fixtures/script_tags.json +18 -0
  45. data/test/fixtures/shop.json +37 -0
  46. data/test/fixtures/smart_collection.json +25 -0
  47. data/test/fixtures/smart_collections.json +26 -0
  48. data/test/fixtures/webhook.json +10 -0
  49. data/test/fixtures/webhooks.json +20 -0
  50. data/test/shopify_client/api/custom_collection_spec.rb +54 -0
  51. data/test/shopify_client/api/order_spec.rb +68 -0
  52. data/test/shopify_client/api/product_spec.rb +66 -0
  53. data/test/shopify_client/api/recurring_application_charge_spec.rb +138 -0
  54. data/test/shopify_client/api/script_tag_spec.rb +109 -0
  55. data/test/shopify_client/api/shop_spec.rb +30 -0
  56. data/test/shopify_client/api/smart_collection_spec.rb +54 -0
  57. data/test/shopify_client/api/webhook_spec.rb +109 -0
  58. data/test/shopify_client/base_spec.rb +12 -0
  59. data/test/shopify_client/client_spec.rb +12 -0
  60. data/test/shopify_client/custom_collection_spec.rb +41 -0
  61. data/test/shopify_client/error/client_error_spec.rb +19 -0
  62. data/test/shopify_client/error/server_error_spec.rb +20 -0
  63. data/test/shopify_client/order_spec.rb +30 -0
  64. data/test/shopify_client/product_spec.rb +21 -0
  65. data/test/shopify_client/recurring_application_charge_spec.rb +20 -0
  66. data/test/shopify_client/script_tag_spec.rb +22 -0
  67. data/test/shopify_client/shop_spec.rb +14 -0
  68. data/test/shopify_client/smart_collection_spec.rb +41 -0
  69. data/test/shopify_client/webhook_spec.rb +22 -0
  70. data/test/shopify_client_spec.rb +10 -0
  71. data/test/test_helper.rb +13 -0
  72. metadata +235 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "recurring_application_charge": {
3
+ "activated_on": null,
4
+ "billing_on": "2013-07-17T00:00:00+00:00",
5
+ "cancelled_on": null,
6
+ "created_at": "2013-07-18T13:55:43-04:00",
7
+ "id": 455696195,
8
+ "name": "Super Mega Plan",
9
+ "price": "15.00",
10
+ "return_url": "http://yourapp.com",
11
+ "status": "pending",
12
+ "test": null,
13
+ "trial_days": 0,
14
+ "trial_ends_on": null,
15
+ "updated_at": "2013-07-18T13:55:43-04:00",
16
+ "confirmation_url": "http://apple.myshopify.com/admin/charges/confirm_recurring_application_charge?id=455696195&signature=BAhpBENfKRs%3D--a911ece9470850c96f6c7735c684b8a3f6869594"
17
+ }
18
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "recurring_application_charges": [
3
+ {
4
+ "activated_on": null,
5
+ "billing_on": "2013-07-17T00:00:00+00:00",
6
+ "cancelled_on": null,
7
+ "created_at": "2013-07-18T13:55:43-04:00",
8
+ "id": 455696195,
9
+ "name": "Super Mega Plan",
10
+ "price": "15.00",
11
+ "return_url": "http://yourapp.com",
12
+ "status": "accepted",
13
+ "test": null,
14
+ "trial_days": 0,
15
+ "trial_ends_on": null,
16
+ "updated_at": "2013-07-18T13:56:57-04:00"
17
+ },
18
+ {
19
+ "activated_on": "2013-07-17T00:00:00+00:00",
20
+ "billing_on": "2013-07-17T00:00:00+00:00",
21
+ "cancelled_on": null,
22
+ "created_at": "2013-07-18T13:55:43-04:00",
23
+ "id": 455696196,
24
+ "name": "Super Mega Plan",
25
+ "price": "15.00",
26
+ "return_url": "http://yourapp.com",
27
+ "status": "active",
28
+ "test": null,
29
+ "trial_days": 0,
30
+ "trial_ends_on": null,
31
+ "updated_at": "2013-07-18T13:56:57-04:00"
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "script_tag": {
3
+ "created_at": "2013-08-01T11:13:08-04:00",
4
+ "id": 596726825,
5
+ "event": "onload",
6
+ "src": "http://js-aplenty.com/foo.js",
7
+ "updated_at": "2013-08-01T11:13:08-04:00"
8
+ }
9
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "script_tags": [
3
+ {
4
+ "created_at": "2013-08-01T11:13:08-04:00",
5
+ "event": "onload",
6
+ "id": 421379493,
7
+ "src": "http://js-aplenty.com/bar.js",
8
+ "updated_at": "2013-08-01T11:13:08-04:00"
9
+ },
10
+ {
11
+ "created_at": "2013-08-01T11:13:08-04:00",
12
+ "event": "onload",
13
+ "id": 596726825,
14
+ "src": "http://js-aplenty.com/foo.js",
15
+ "updated_at": "2013-08-01T11:13:08-04:00"
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "shop": {
3
+ "address1": "1 Infinite Loop",
4
+ "city": "Cupertino",
5
+ "country": "US",
6
+ "created_at": "2007-12-31T19:00:00-05:00",
7
+ "customer_email": "customers@apple.com",
8
+ "domain": "shop.apple.com",
9
+ "email": "steve@apple.com",
10
+ "id": 690933842,
11
+ "latitude": "45.45",
12
+ "longitude": "-75.43",
13
+ "name": "Apple Computers",
14
+ "phone": "1231231234",
15
+ "province": "California",
16
+ "public": null,
17
+ "source": null,
18
+ "zip": "95014",
19
+ "country_code": "US",
20
+ "country_name": "United States",
21
+ "currency": "USD",
22
+ "timezone": "(GMT-05:00) Eastern Time (US & Canada)",
23
+ "shop_owner": "Steve Jobs",
24
+ "money_format": "$ ",
25
+ "money_with_currency_format": "$ USD",
26
+ "province_code": "CA",
27
+ "taxes_included": null,
28
+ "tax_shipping": null,
29
+ "plan_display_name": "enterprise",
30
+ "plan_name": "enterprise",
31
+ "myshopify_domain": "apple.myshopify.com",
32
+ "google_apps_domain": null,
33
+ "google_apps_login_enabled": null,
34
+ "money_in_emails_format": "$",
35
+ "money_with_currency_in_emails_format": "$ USD"
36
+ }
37
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "smart_collection": {
3
+ "body_html": "<p>The best selling ipod ever</p>",
4
+ "handle": "smart-ipods",
5
+ "id": 482865238,
6
+ "products_count": 0,
7
+ "published_at": "2008-02-01T19:00:00-05:00",
8
+ "published_scope": "global",
9
+ "sort_order": "manual",
10
+ "template_suffix": null,
11
+ "title": "Smart iPods",
12
+ "updated_at": "2008-02-01T19:00:00-05:00",
13
+ "rules": [
14
+ {
15
+ "column": "type",
16
+ "relation": "equals",
17
+ "condition": "Cult Products"
18
+ }
19
+ ],
20
+ "image": {
21
+ "created_at": "2013-07-18T13:55:42-04:00",
22
+ "src": "http://cdn.shopify.com/s/files/1/0006/9093/3842/collections/ipod_nano_8gb.jpg?0"
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "smart_collections": [
3
+ {
4
+ "body_html": "<p>The best selling ipod ever</p>",
5
+ "handle": "smart-ipods",
6
+ "id": 482865238,
7
+ "published_at": "2008-02-01T19:00:00-05:00",
8
+ "published_scope": "global",
9
+ "sort_order": "manual",
10
+ "template_suffix": null,
11
+ "title": "Smart iPods",
12
+ "updated_at": "2008-02-01T19:00:00-05:00",
13
+ "rules": [
14
+ {
15
+ "column": "type",
16
+ "relation": "equals",
17
+ "condition": "Cult Products"
18
+ }
19
+ ],
20
+ "image": {
21
+ "created_at": "2013-07-18T13:55:42-04:00",
22
+ "src": "http://cdn.shopify.com/s/files/1/0006/9093/3842/collections/ipod_nano_8gb.jpg?0"
23
+ }
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "webhook": {
3
+ "address": "http://apple.com",
4
+ "created_at": "2013-07-18T13:55:43-04:00",
5
+ "format": "json",
6
+ "id": 4759306,
7
+ "topic": "orders/create",
8
+ "updated_at": "2013-07-18T13:55:43-04:00"
9
+ }
10
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "webhooks": [
3
+ {
4
+ "address": "http://apple.com",
5
+ "created_at": "2013-07-18T13:55:43-04:00",
6
+ "format": "json",
7
+ "id": 4759306,
8
+ "topic": "orders/create",
9
+ "updated_at": "2013-07-18T13:55:43-04:00"
10
+ },
11
+ {
12
+ "address": "http://apple.com/uninstall",
13
+ "created_at": "2013-07-18T13:55:43-04:00",
14
+ "format": "json",
15
+ "id": 901431826,
16
+ "topic": "app/uninstalled",
17
+ "updated_at": "2013-07-18T13:55:43-04:00"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,54 @@
1
+ describe ShopifyClient::API::CustomCollection do
2
+
3
+ before do
4
+ @client = ShopifyClient.new("example.myshopify.com", "token")
5
+ end
6
+
7
+ describe "#custom_collections" do
8
+ it "requests all custom collections" do
9
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/custom_collections.json").
10
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
11
+ to_return(status: 200, body: '')
12
+
13
+ @client.custom_collections
14
+
15
+ assert_requested stubbed
16
+ end
17
+
18
+ it "returns an ShopifyClient::CustomCollection array" do
19
+ stub_request(:get, "https://example.myshopify.com/admin/custom_collections.json").
20
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
21
+ to_return(status: 200, body: fixture('custom_collections.json'))
22
+
23
+ custom_collections = @client.custom_collections
24
+
25
+ custom_collections.size.must_equal 1
26
+ custom_collections.first.must_be_instance_of ShopifyClient::CustomCollection
27
+ end
28
+ end
29
+
30
+ describe "#custom_collection" do
31
+ it "requests an specific custom collection" do
32
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/custom_collections/123.json").
33
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
34
+ to_return(status: 200, body: '')
35
+
36
+ @client.custom_collection(123)
37
+
38
+ assert_requested stubbed
39
+ end
40
+
41
+ it "returns a ShopifyClient::CustomCollection with data" do
42
+ stub_request(:get, "https://example.myshopify.com/admin/custom_collections/123.json").
43
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
44
+ to_return(status: 200, body: fixture('custom_collection.json'))
45
+
46
+ custom_collection = @client.custom_collection(123)
47
+
48
+ custom_collection.must_be_instance_of ShopifyClient::CustomCollection
49
+ custom_collection.handle.must_equal 'ipods'
50
+ end
51
+ end
52
+
53
+ end
54
+
@@ -0,0 +1,68 @@
1
+ describe ShopifyClient::API::Order do
2
+
3
+ before do
4
+ @client = ShopifyClient.new("example.myshopify.com", "token")
5
+ end
6
+
7
+ describe "#orders" do
8
+ it "requests all orders" do
9
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/orders.json").
10
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
11
+ to_return(status: 200, body: '')
12
+
13
+ @client.orders
14
+
15
+ assert_requested stubbed
16
+ end
17
+
18
+ it "filters by financial_status" do
19
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/orders.json?financial_status=authorized").
20
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
21
+ to_return(status: 200, body: '')
22
+
23
+ @client.orders(:financial_status => :authorized)
24
+
25
+ assert_requested stubbed
26
+ end
27
+
28
+
29
+ it "returns an ShopifyClient::Order array" do
30
+ stub_request(:get, "https://example.myshopify.com/admin/orders.json").
31
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
32
+ to_return(status: 200, body: fixture('orders.json'))
33
+
34
+ orders = @client.orders
35
+
36
+ orders.size.must_equal 1
37
+ orders.first.must_be_instance_of ShopifyClient::Order
38
+ end
39
+
40
+ end
41
+
42
+ describe "#order" do
43
+ it "requests an specific order" do
44
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/orders/123.json").
45
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
46
+ to_return(status: 200, body: '')
47
+
48
+ @client.order(123)
49
+
50
+ assert_requested stubbed
51
+ end
52
+
53
+ it "returns a ShopifyClient::Order" do
54
+ stub_request(:get, "https://example.myshopify.com/admin/orders/123.json").
55
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
56
+ to_return(status: 200, body: fixture('order.json'))
57
+
58
+ order = @client.order(123)
59
+
60
+ order.must_be_instance_of ShopifyClient::Order
61
+ order.cart_token.must_equal "68778783ad298f1c80c3bafcddeea02f"
62
+ end
63
+ end
64
+
65
+ end
66
+
67
+
68
+
@@ -0,0 +1,66 @@
1
+ describe ShopifyClient::API::Product do
2
+
3
+ before do
4
+ @client = ShopifyClient.new("example.myshopify.com", "token")
5
+ end
6
+
7
+ describe "#products" do
8
+ it "requests all products" do
9
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/products.json").
10
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
11
+ to_return(status: 200, body: '')
12
+
13
+ @client.products
14
+
15
+ assert_requested stubbed
16
+ end
17
+
18
+ it "filters by collection_id" do
19
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/products.json?collection_id=456").
20
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
21
+ to_return(status: 200, body: '')
22
+
23
+ @client.products(:collection_id => 456)
24
+
25
+ assert_requested stubbed
26
+ end
27
+
28
+
29
+ it "returns an ShopifyClient::Product array" do
30
+ stub_request(:get, "https://example.myshopify.com/admin/products.json").
31
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
32
+ to_return(status: 200, body: fixture('products.json'))
33
+
34
+ products = @client.products
35
+
36
+ products.size.must_equal 2
37
+ products.first.must_be_instance_of ShopifyClient::Product
38
+ end
39
+
40
+ end
41
+
42
+ describe "#product" do
43
+ it "requests an specific product" do
44
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/products/123.json").
45
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
46
+ to_return(status: 200, body: '')
47
+
48
+ @client.product(123)
49
+
50
+ assert_requested stubbed
51
+ end
52
+
53
+ it "returns a ShopifyClient::Product" do
54
+ stub_request(:get, "https://example.myshopify.com/admin/products/123.json").
55
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
56
+ to_return(status: 200, body: fixture('product.json'))
57
+
58
+ product = @client.product(123)
59
+
60
+ product.must_be_instance_of ShopifyClient::Product
61
+ end
62
+ end
63
+
64
+ end
65
+
66
+
@@ -0,0 +1,138 @@
1
+ describe ShopifyClient::API::RecurringApplicationCharge do
2
+
3
+ before do
4
+ @client = ShopifyClient.new("example.myshopify.com", "token")
5
+ end
6
+
7
+ describe "#recurring_application_charges" do
8
+ it "requests all recurring application charges" do
9
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/recurring_application_charges.json").
10
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
11
+ to_return(status: 200, body: '')
12
+
13
+ @client.recurring_application_charges
14
+
15
+ assert_requested stubbed
16
+ end
17
+
18
+ it "returns an ShopifyClient::RecurringApplicationCharge array" do
19
+ stub_request(:get, "https://example.myshopify.com/admin/recurring_application_charges.json").
20
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
21
+ to_return(status: 200, body: fixture('recurring_application_charges.json'))
22
+
23
+ recurring_application_charges = @client.recurring_application_charges
24
+
25
+ recurring_application_charges.size.must_equal 2
26
+ recurring_application_charges.first.must_be_instance_of ShopifyClient::RecurringApplicationCharge
27
+ end
28
+ end
29
+
30
+ describe "#current_recurring_application_charge" do
31
+ it "returns an 'active' charge" do
32
+ stub_request(:get, "https://example.myshopify.com/admin/recurring_application_charges.json").
33
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
34
+ to_return(status: 200, body: fixture('recurring_application_charges.json'))
35
+
36
+ current = @client.current_recurring_application_charge
37
+
38
+ current.status.must_equal 'active'
39
+ end
40
+ end
41
+
42
+ describe "#recurring_application_charge" do
43
+ it "requests an specific recurring application charge" do
44
+ stubbed = stub_request(:get, "https://example.myshopify.com/admin/recurring_application_charges/123.json").
45
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
46
+ to_return(status: 200, body: '')
47
+
48
+ @client.recurring_application_charge(123)
49
+
50
+ assert_requested stubbed
51
+ end
52
+
53
+ it "returns a ShopifyClient::RecurringApplicationCharge" do
54
+ stub_request(:get, "https://example.myshopify.com/admin/recurring_application_charges/123.json").
55
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
56
+ to_return(status: 200, body: fixture('recurring_application_charge.json'))
57
+
58
+ recurring_application_charge = @client.recurring_application_charge(123)
59
+
60
+ recurring_application_charge.must_be_instance_of ShopifyClient::RecurringApplicationCharge
61
+ end
62
+ end
63
+
64
+ describe "#create_recurring_application_charge" do
65
+ before do
66
+ @attributes = { name: "Super Duper Plan", price: 10.0, return_url: "http://super-duper.shopifyapps.com" }
67
+ @request = stub_request(:post, "https://example.myshopify.com/admin/recurring_application_charges.json").
68
+ with(headers: { 'X-Shopify-Access-Token' => "token" },
69
+ body: { recurring_application_charge: @attributes }).
70
+ to_return(status: 200, body: fixture('recurring_application_charge.json'))
71
+ end
72
+
73
+ it "posts with recurring_application_charge params" do
74
+ @client.create_recurring_application_charge(@attributes)
75
+
76
+ assert_requested @request
77
+ end
78
+
79
+ it "returns an initialized RecurringApplicationCharge" do
80
+ recurring_application_charge = @client.create_recurring_application_charge(@attributes)
81
+
82
+ recurring_application_charge.must_be_instance_of ShopifyClient::RecurringApplicationCharge
83
+ recurring_application_charge.id.must_equal 455696195
84
+ end
85
+
86
+ it "raises an error if 422 returned" do
87
+ @request = stub_request(:post, "https://example.myshopify.com/admin/recurring_application_charges.json").
88
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
89
+ to_return(status: 422 , body: '{"error": "Price must be present"}')
90
+
91
+ assert_raises ShopifyClient::Error::ClientError do
92
+ @client.create_recurring_application_charge({ name: "Super Duper Plan", return_url: "http://super-duper.shopifyapps.com" })
93
+ end
94
+ end
95
+
96
+ end
97
+
98
+ describe "#activate_recurring_application_charge" do
99
+ before do
100
+ @request = stub_request(:post, "https://example.myshopify.com/admin/recurring_application_charges/123/activate.json").
101
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
102
+ to_return(status: 200)
103
+ end
104
+
105
+ it "posts to activate charge" do
106
+ @client.activate_recurring_application_charge(123)
107
+
108
+ assert_requested @request
109
+ end
110
+
111
+ it "can receive a ShopifyClient::RecurringApplicationCharge object" do
112
+ @client.activate_recurring_application_charge(ShopifyClient::RecurringApplicationCharge.new(id: 123))
113
+
114
+ assert_requested @request
115
+ end
116
+ end
117
+
118
+ describe "#cancel_recurring_application_charge" do
119
+ before do
120
+ @request = stub_request(:delete, "https://example.myshopify.com/admin/recurring_application_charges/123.json").
121
+ with(headers: { 'X-Shopify-Access-Token' => "token" }).
122
+ to_return(status: 200)
123
+ end
124
+
125
+ it "deletes to cancel charge" do
126
+ @client.cancel_recurring_application_charge(123)
127
+
128
+ assert_requested @request
129
+ end
130
+
131
+ it "can receive a ShopifyClient::RecurringApplicationCharge object" do
132
+ @client.cancel_recurring_application_charge(ShopifyClient::RecurringApplicationCharge.new(id: 123))
133
+
134
+ assert_requested @request
135
+ end
136
+ end
137
+
138
+ end