Sha256: 8453caecc67ad8a6dacef6aaad903e7c68f1cc891391a77a8419be261ceea990
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require "spec_helper" describe FooMapper do let (:connection) { instance_double(Faraday::Connection, :get => nil) } let (:context) do { :foo => :bar } end subject { described_class.new(connection, context) } describe "#data" do let (:expected_raw_data) do { :some => 'data' } end let (:expected_data) { JSON::generate(expected_raw_data, :symbolize_names => true) } let (:expected_response) { instance_double(Faraday::Response, :body => expected_data, :status => 200) } context "with a valid endpoint" do before(:each) do allow(connection).to receive(:get).with("/some/test/endpoint/#{context.values[0]}").and_return(expected_response) end specify { expect(subject.data).to eq expected_raw_data } end context "invalid hostname" do let (:expected_exception) { Alephant::Publisher::Request::ConnectionFailed } let (:faraday_exception) { Faraday::ConnectionFailed.new(StandardError) } before(:each) do allow(connection).to receive(:get).and_raise(faraday_exception) end specify { expect { subject.data }.to raise_error expected_exception } end context "invalid status code" do let (:status_code) { 503 } let (:expected_exception) { Alephant::Publisher::Request::InvalidApiStatus } before(:each) do allow(connection).to receive(:get).and_return(OpenStruct.new(:status => status_code)) end specify { expect { subject.data }.to raise_error expected_exception } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alephant-publisher-request-0.1.2 | spec/data_mapper_spec.rb |