Sha256: dcfb3a6f6c08fbbd9a5d64cffe840d8f9be53ad26ecb6dc85b06a0265e46f56e

Contents?: true

Size: 1.65 KB

Versions: 6

Compression:

Stored size: 1.65 KB

Contents

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

describe 'document removal', :type => :indexer do
  it 'removes an object from the index' do
    session.remove(post)
    connection.should have_delete("Post #{post.id}")
  end

  it 'removes an object by type and id' do
    session.remove_by_id(Post, 1)
    connection.should have_delete('Post 1')
  end

  it 'removes an object by type and id and immediately commits' do
    connection.should_receive(:delete_by_id).with(['Post 1']).ordered
    connection.should_receive(:commit).ordered
    session.remove_by_id!(Post, 1)
  end

  it 'removes an object from the index and immediately commits' do
    connection.should_receive(:delete_by_id).ordered
    connection.should_receive(:commit).ordered
    session.remove!(post)
  end

  it 'removes everything from the index' do
    session.remove_all
    connection.should have_delete_by_query("type:[* TO *]")
  end

  it 'removes everything from the index and immediately commits' do
    connection.should_receive(:delete_by_query).ordered
    connection.should_receive(:commit).ordered
    session.remove_all!
  end

  it 'removes everything of a given class from the index' do
    session.remove_all(Post)
    connection.should have_delete_by_query("type:Post")
  end

  it 'correctly escapes namespaced classes when removing everything from the index' do
    connection.should_receive(:delete_by_query).with('type:Namespaced\:\:Comment')
    session.remove_all(Namespaced::Comment)
  end

  it 'should remove by query' do
    session.remove(Post) do
      with(:title, 'monkeys')
    end
    connection.should have_delete_by_query("(type:Post AND title_ss:monkeys)")
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sunspot-1.0.5 spec/api/indexer/removal_spec.rb
sunspot-1.0.4 spec/api/indexer/removal_spec.rb
sunspot-1.0.3 spec/api/indexer/removal_spec.rb
sunspot-1.0.2 spec/api/indexer/removal_spec.rb
sunspot-1.0.1 spec/api/indexer/removal_spec.rb
sunspot-1.0.0 spec/api/indexer/removal_spec.rb