Sha256: f8a5cb7f386580671630438a4bb14bcffda7f266f28d41e7bf3ec8cffab01e5f

Contents?: true

Size: 1.91 KB

Versions: 2

Compression:

Stored size: 1.91 KB

Contents

require 'spec_helper'

describe Ratis::Landmark do

  before do
    Ratis.reset
    Ratis.configure do |config|
      config.endpoint   = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
      config.namespace  = 'PX_WEB'
    end
  end

  describe "#where" do
    before do
      @conditions = {:type => '*',
                     :zipcode => '85224'}
    end

    it 'only makes one request', vcr: {} do
      # false just to stop further processing of response
      Ratis::Request.should_receive(:get).once.and_call_original
      Ratis::Landmark.where(@conditions.dup)
    end

    it 'requests the correct SOAP action' do
      Ratis::Request.should_receive(:get) do |action, options|
        action.should eq('Getlandmarks')
        options["Type"].should eq(@conditions[:type])
        options["Zipcode"].should eq(@conditions[:zipcode])

      end.and_return(double('response', :success? => false))

      Ratis::Landmark.where(@conditions.dup)
    end

    it "should return a collection of Ratis::Landmark(s)", vcr: {} do
      stops = Ratis::Landmark.where(@conditions.dup)
      stops.each do |obj|
        expect(obj).to be_a(Ratis::Landmark)
      end
    end

    it 'returns multiple landmarks', vcr: {} do
      stops = Ratis::Landmark.where(@conditions.dup)
      stops.should have(1514).items
    end

    it 'parses out the landmark fields correctly', vcr: {} do
      landmarks = Ratis::Landmark.where(@conditions.dup)
      landmark  = landmarks.first

      expect(landmark.type).to eq('LRT')
      expect(landmark.verbose).to eq('12JF')
      expect(landmark.location).to eq('S 12TH ST & E JEFFERSON ST')
      expect(landmark.locality).to eq('N')
    end

    it "should raise error for missing arg type" do
      conditions = @conditions.dup
      conditions.delete(:type)

      expect do
        Ratis::Landmark.where(conditions)
      end.to raise_error(ArgumentError, 'You must provide a type')
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ratis-3.4.3 spec/ratis/landmark_spec.rb
ratis-3.4.2 spec/ratis/landmark_spec.rb