# frozen_string_literal: true require "test_helper" require "bandwidth_tn_order" class BandwidthTNOrderTest < Minitest::Test def test_for_received order = BandwidthTNOrder.for(BandwidthIris::Order.new( order_status: "RECEIVED" )) assert_kind_of BandwidthTNOrder::Received, order end def test_for_complete order = BandwidthTNOrder.for(BandwidthIris::Order.new( order_status: "COMPLETE" )) assert_kind_of BandwidthTNOrder::Complete, order end def test_for_failed order = BandwidthTNOrder.for(BandwidthIris::Order.new( order_status: "FAILED" )) assert_kind_of BandwidthTNOrder::Failed, order end def test_for_unknown order = BandwidthTNOrder.for(BandwidthIris::Order.new( order_status: "randOmgarBagE" )) assert_kind_of BandwidthTNOrder, order assert_equal :randomgarbage, order.status end def test_poll order = BandwidthTNOrder.new(BandwidthIris::Order.new) assert_raises { order.poll.sync } end em :test_poll class TestReceived < Minitest::Test def setup @order = BandwidthTNOrder::Received.new( BandwidthIris::Order.new(id: "oid") ) end def test_poll req = stub_request( :get, "https://dashboard.bandwidth.com/v1.0/accounts//orders/oid" ).to_return(status: 200, body: <<~RESPONSE) COMPLETE RESPONSE new_order = PromiseMock.new new_order.expect(:poll, nil) @order.poll.sync assert_requested req end em :test_poll end class TestComplete < Minitest::Test def setup @order = BandwidthTNOrder::Complete.new(BandwidthIris::Order.new) end def test_poll assert_equal @order, @order.poll.sync end em :test_poll end class TestFailed < Minitest::Test def setup @order = BandwidthTNOrder::Failed.new( BandwidthIris::Order.new(id: "oid") ) end def test_poll assert_raises { @order.poll.sync } end em :test_poll end end