Sha256: 413e79a24a36c79fc1eb265fe71013ae02afab5a98265d373a03a3c981d91622

Contents?: true

Size: 1.51 KB

Versions: 14

Compression:

Stored size: 1.51 KB

Contents

require File.join(File.dirname(__FILE__), 'spec_helper')

describe Sunspot::SessionProxy::MasterSlaveSessionProxy do
  before :each do
    @master_session, @slave_session = Sunspot::Session.new, Sunspot::Session.new
    @proxy = Sunspot::SessionProxy::MasterSlaveSessionProxy.new(@master_session, @slave_session)
  end

  {
    :master_session => Sunspot::Session.public_instance_methods(false) - [:search, 'search', :new_search, 'new_search', :more_like_this, 'more_like_this', :new_more_like_this, 'new_more_like_this', :config, 'config'],
    :slave_session => [:search, :new_search, :more_like_this, :new_more_like_this]
  }.each_pair do |delegate, methods|
    methods.each do |method|
      it "should delegate #{method} to #{delegate}" do
        args = Array.new(Sunspot::Session.instance_method(method).arity.abs) do
          stub('arg')
        end
        instance_variable_get(:"@#{delegate}").should_receive(method).with(*args)
        @proxy.send(method, *args)
      end
    end
  end

  it 'should return master session config by default' do
    @proxy.config.should eql(@master_session.config)
  end

  it 'should return master session config when specified' do
    @proxy.config(:master).should eql(@master_session.config)
  end

  it 'should return slave session config when specified' do
    @proxy.config(:slave).should eql(@slave_session.config)
  end

  it 'should raise ArgumentError when bogus config specified' do
    lambda { @proxy.config(:bogus) }.should raise_error
  end

  it_should_behave_like 'session proxy'
end

Version data entries

14 entries across 14 versions & 5 rubygems

Version Path
erichummel-sunspot-1.2.1g spec/api/session_proxy/master_slave_session_proxy_spec.rb
erichummel-sunspot-1.2.1f spec/api/session_proxy/master_slave_session_proxy_spec.rb
erichummel-sunspot-1.2.1b spec/api/session_proxy/master_slave_session_proxy_spec.rb
erichummel-sunspot-1.2.1a spec/api/session_proxy/master_slave_session_proxy_spec.rb
lisausa-sunspot-1.2.1.1 spec/api/session_proxy/master_slave_session_proxy_spec.rb
ruben-sunspot-1.1.4 spec/api/session_proxy/master_slave_session_proxy_spec.rb
ruben-sunspot-1.1.3 spec/api/session_proxy/master_slave_session_proxy_spec.rb
ruben-sunspot-1.1.2 spec/api/session_proxy/master_slave_session_proxy_spec.rb
sunspot-1.2.1 spec/api/session_proxy/master_slave_session_proxy_spec.rb
sunspot-1.2.0 spec/api/session_proxy/master_slave_session_proxy_spec.rb
ruben-sunspot-1.1.1 spec/api/session_proxy/master_slave_session_proxy_spec.rb
ruben-sunspot-1.1.0 spec/api/session_proxy/master_slave_session_proxy_spec.rb
nuatt_sunspot-1.1.0.3 spec/api/session_proxy/master_slave_session_proxy_spec.rb
sunspot-1.1.0 spec/api/session_proxy/master_slave_session_proxy_spec.rb