123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- require 'test_helper'
- class FulFillmentOrderTest < Test::Unit::TestCase
- def setup
- super
- fake "fulfillment_orders/519788021", method: :get,
- body: load_fixture('fulfillment_order')
- fake "orders/450789469/fulfillment_orders", method: :get,
- body: load_fixture('fulfillment_orders')
- end
- context "FulfillmentOrder" do
- context "#find" do
- should "be able to find fulfillment order" do
- fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
- assert fulfillment_order.is_a?(ShopifyAPI::FulfillmentOrder)
- assert_equal 519788021, fulfillment_order.id
- assert_equal 450789469, fulfillment_order.order_id
- end
- end
- context "#all" do
- should "be able to list fulfillment orders for an order" do
- fake 'orders/450789469/fulfillment_orders', method: :get, body: load_fixture('fulfillment_orders')
- fulfillment_orders = ShopifyAPI::FulfillmentOrder.all(
- params: { order_id: 450789469 }
- )
- assert_equal [519788021, 519788022], fulfillment_orders.map(&:id).sort
- fulfillment_orders.each do |fulfillment_order|
- assert fulfillment_order.is_a?(ShopifyAPI::FulfillmentOrder)
- assert_equal 450789469, fulfillment_order.order_id
- end
- end
- should "require order_id" do
- assert_raises ShopifyAPI::ValidationException do
- ShopifyAPI::FulfillmentOrder.all
- end
- end
- end
- context "#fulfillments" do
- should "be able to list fulfillments for a fulfillment order" do
- fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
- fake "fulfillment_orders/#{fulfillment_order.id}/fulfillments", method: :get,
- body: load_fixture('fulfillments')
- fulfillments = fulfillment_order.fulfillments
- assert_equal 1, fulfillments.count
- fulfillment = fulfillments.first
- assert fulfillment.is_a?(ShopifyAPI::Fulfillment)
- assert_equal 450789469, fulfillment.order_id
- end
- end
- context "#move" do
- should "move a fulfillment order to a new_location_id" do
- fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
- new_location_id = 5
- fake_original_fulfillment_order = fulfillment_order.clone
- fake_original_fulfillment_order.status = 'closed'
- fake_moved_fulfillment_order = ActiveSupport::JSON.decode(load_fixture('fulfillment_order'))
- fake_moved_fulfillment_order['assigned_location_id'] = new_location_id
- request_body = { fulfillment_order: { new_location_id: 5 } }
- body = {
- original_fulfillment_order: fake_original_fulfillment_order,
- moved_fulfillment_order: fake_moved_fulfillment_order,
- remaining_fulfillment_order: nil,
- }
- fake "fulfillment_orders/519788021/move", :method => :post,
- :request_body => ActiveSupport::JSON.encode(request_body),
- :body => ActiveSupport::JSON.encode(body)
- response_fulfillment_orders = fulfillment_order.move(new_location_id: new_location_id)
- assert_equal 'closed', fulfillment_order.status
- assert_equal 3, response_fulfillment_orders.count
- original_fulfillment_order = response_fulfillment_orders['original_fulfillment_order']
- refute_nil original_fulfillment_order
- assert original_fulfillment_order.is_a?(ShopifyAPI::FulfillmentOrder)
- assert_equal 'closed', original_fulfillment_order.status
- moved_fulfillment_order = response_fulfillment_orders['moved_fulfillment_order']
- refute_nil moved_fulfillment_order
- assert moved_fulfillment_order.is_a?(ShopifyAPI::FulfillmentOrder)
- assert_equal 'open', moved_fulfillment_order.status
- assert_equal new_location_id, moved_fulfillment_order.assigned_location_id
- remaining_fulfillment_order = response_fulfillment_orders['remaining_fulfillment_order']
- assert_nil remaining_fulfillment_order
- end
- end
- context "#cancel" do
- should "cancel a fulfillment order" do
- fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
- assert_equal 'open', fulfillment_order.status
- cancelled = ActiveSupport::JSON.decode(load_fixture('fulfillment_order'))
- cancelled['status'] = 'cancelled'
- body = {
- fulfillment_order: cancelled,
- replacement_fulfillment_order: fulfillment_order,
- }
- fake "fulfillment_orders/519788021/cancel", :method => :post, :body => ActiveSupport::JSON.encode(body)
- response_fulfillment_orders = fulfillment_order.cancel
- assert_equal 'cancelled', fulfillment_order.status
- assert_equal 2, response_fulfillment_orders.count
- fulfillment_order = response_fulfillment_orders['fulfillment_order']
- assert_equal 'cancelled', fulfillment_order.status
- replacement_fulfillment_order = response_fulfillment_orders['replacement_fulfillment_order']
- assert_equal 'open', replacement_fulfillment_order.status
- end
- end
- context "#close" do
- should "be able to close fulfillment order" do
- fulfillment_order = ShopifyAPI::FulfillmentOrder.find(519788021)
- fulfillment_order.status = 'in_progress'
- closed = ActiveSupport::JSON.decode(load_fixture('fulfillment_order'))
- closed['status'] = 'incomplete'
- request_body = {
- fulfillment_order: {
- message: "Test close message."
- }
- }
- fake "fulfillment_orders/519788021/close", :method => :post,
- :request_body => ActiveSupport::JSON.encode(request_body),
- :body => ActiveSupport::JSON.encode(closed)
- assert fulfillment_order.close(message: "Test close message.")
- assert_equal 'incomplete', fulfillment_order.status
- end
- end
- end
- end
|