Sha256: f26fc7e1a3699596613ab10ccd7cb022360761a828e7b950364d8addd88ca91f

Contents?: true

Size: 931 Bytes

Versions: 1

Compression:

Stored size: 931 Bytes

Contents

require "spec_helper"

describe ShippingEasy::Http::ResponseHandler do

  let(:status) { 200 }
  let(:body) { { "order_number" => "12345" }}
  let(:response) do
    double("response",
            status: status,
            body: body.to_json)
  end

  subject { ShippingEasy::Http::ResponseHandler.new(response) }

  describe "#run" do
    context "when success" do
      specify { subject.run.should == body }
    end
    context "when authentication fails" do
      let(:status) { 401 }
      specify { expect { subject.run }.to raise_error(ShippingEasy::AccessDeniedError) }
    end
    context "when resource cannot be found" do
      let(:status) { 404 }
      specify { expect { subject.run }.to raise_error(ShippingEasy::ResourceNotFoundError) }
    end
    context "when unexpected error occurs" do
      let(:status) { 500 }
      specify { expect { subject.run }.to raise_error(ShippingEasy::Error) }
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shipping_easy-0.2.0 spec/http/response_handler_spec.rb