diff --git a/lib/shopify_api/resources/fulfillment_order.rb b/lib/shopify_api/resources/fulfillment_order.rb index dca2bd687..8566c02d6 100644 --- a/lib/shopify_api/resources/fulfillment_order.rb +++ b/lib/shopify_api/resources/fulfillment_order.rb @@ -2,6 +2,8 @@ module ShopifyAPI class FulfillmentOrder < Base def self.all(options = {}) order_id = options.dig(:params, :order_id) + raise ShopifyAPI::ValidationException, "'order_id' is required" if order_id.nil? || order_id == '' + order = ::ShopifyAPI::Order.new(id: order_id) order.fulfillment_orders end diff --git a/test/assigned_fulfillment_order_test.rb b/test/assigned_fulfillment_order_test.rb index 3e06b0635..e4751e0e6 100644 --- a/test/assigned_fulfillment_order_test.rb +++ b/test/assigned_fulfillment_order_test.rb @@ -3,20 +3,20 @@ class AssignedFulFillmentOrderTest < Test::Unit::TestCase context "AssignedFulfillmentOrder" do context "#all" do - should "be able to list assigned fulfillment orders by assigned_status" do + should "list assigned fulfillment orders by assigned_status" do fo_fixture = load_fixture('assigned_fulfillment_orders') fake 'assigned_fulfillment_orders.json?assigned_status=cancellation_requested', method: :get, body: fo_fixture, extension: false assigned_fulfillment_orders = ShopifyAPI::AssignedFulfillmentOrder.all( - params: { assigned_status: 'cancellation_requested' } + params: { assigned_status: ShopifyAPI::AssignedFulfillmentOrder::CANCELLATION_REQUESTED } ) assert_equal 2, assigned_fulfillment_orders.count assigned_fulfillment_orders.each do |fulfillment_order| assert_equal 'ShopifyAPI::FulfillmentOrder', fulfillment_order.class.name - assert_equal 'open', fulfillment_order.status - assert_equal 'unsubmitted', fulfillment_order.request_status + assert_equal 'in_progress', fulfillment_order.status + assert_equal 'cancellation_accepted', fulfillment_order.request_status end end diff --git a/test/fixtures/assigned_fulfillment_orders.json b/test/fixtures/assigned_fulfillment_orders.json index ef44616b3..0d405e2dc 100644 --- a/test/fixtures/assigned_fulfillment_orders.json +++ b/test/fixtures/assigned_fulfillment_orders.json @@ -3,7 +3,7 @@ "id": 519788021, "order_id": 450789469, "fulfillment_service_handle": "shipwire", - "status": "open", + "status": "in_progress", "requires_shipping": true, "is_not_deleted": true, "deleted_at": null, @@ -11,7 +11,7 @@ "updated_at": "2016-07-12T11:23:42-04:00", "happened_at": "2016-07-12T11:23:42-04:00", "assigned_location_id": 905684977, - "request_status": "unsubmitted", + "request_status": "cancellation_accepted", "delivery_category": null, "fulfillment_order_line_items": [ { @@ -41,7 +41,7 @@ "id": 519788022, "order_id": 450789469, "fulfillment_service_handle": "manual", - "status": "open", + "status": "in_progress", "requires_shipping": true, "is_not_deleted": true, "deleted_at": null, @@ -49,7 +49,7 @@ "updated_at": "2016-07-12T11:23:42-04:00", "happened_at": "2016-07-12T11:23:42-04:00", "assigned_location_id": 905684977, - "request_status": "unsubmitted", + "request_status": "cancellation_accepted", "delivery_category": null, "fulfillment_order_line_items": [ { diff --git a/test/fulfillment_order_test.rb b/test/fulfillment_order_test.rb index a3fe45be4..8eb79fd13 100644 --- a/test/fulfillment_order_test.rb +++ b/test/fulfillment_order_test.rb @@ -25,12 +25,17 @@ def setup params: { order_id: 450789469 } ) - assert_equal 2, fulfillment_orders.count + assert_equal [519788021, 519788022], fulfillment_orders.map(&:id).sort fulfillment_orders.each do |fulfillment_order| assert_equal 'ShopifyAPI::FulfillmentOrder', fulfillment_order.class.name assert_equal 450789469, fulfillment_order.order_id end - assert_equal [519788021, 519788022], fulfillment_orders.map(&:id).sort + end + + should "require order_id" do + assert_raises ShopifyAPI::ValidationException do + ShopifyAPI::FulfillmentOrder.all + end end end diff --git a/test/order_test.rb b/test/order_test.rb index 54e446ff0..f857fc6de 100644 --- a/test/order_test.rb +++ b/test/order_test.rb @@ -80,11 +80,10 @@ class OrderTest < Test::Unit::TestCase fake 'orders/450789469/fulfillment_orders', method: :get, body: load_fixture('fulfillment_orders') fulfillment_orders = order.fulfillment_orders - assert_equal 2, fulfillment_orders.count + assert_equal [519788021, 519788022], fulfillment_orders.map(&:id).sort fulfillment_orders.each do |fulfillment_order| assert_equal 'ShopifyAPI::FulfillmentOrder', fulfillment_order.class.name assert_equal 450789469, fulfillment_order.order_id end - assert_equal [519788021, 519788022], fulfillment_orders.map(&:id).sort end end