spec/lib/internals/indexing/bundle/memory_spec.rb in picky-2.0.0.pre2 vs spec/lib/internals/indexing/bundle/memory_spec.rb in picky-2.0.0.pre3
- old
+ new
@@ -8,263 +8,279 @@
@configuration = Configuration::Index.new @internal_index, @category
@partial = stub :partial
@weights = stub :weights
@similarity = stub :similarity
- @index = described_class.new :some_name, @configuration, @similarity, @partial, @weights
end
-
+ let(:index) { described_class.new :some_name, @configuration, @similarity, @partial, @weights }
+
+ describe 'raise_cache_missing' do
+ it 'does something' do
+ expect {
+ index.raise_cache_missing :similarity
+ }.to raise_error("Error: The similarity cache for some_index:some_category:some_name is missing.")
+ end
+ end
+
+ describe 'warn_cache_small' do
+ it 'warns the user' do
+ index.should_receive(:warn).once.with "Warning: similarity cache for some_index:some_category:some_name smaller than 16 bytes."
+
+ index.warn_cache_small :similarity
+ end
+ end
+
describe 'identifier' do
it 'should return a specific identifier' do
- @index.identifier.should == 'some_index:some_category:some_name'
+ index.identifier.should == 'some_index:some_category:some_name'
end
end
describe 'initialize_index_for' do
context 'token not yet assigned' do
before(:each) do
- @index.stub! :index => {}
+ index.stub! :index => {}
end
it 'should assign it an empty array' do
- @index.initialize_index_for :some_token
+ index.initialize_index_for :some_token
- @index.index[:some_token].should == []
+ index.index[:some_token].should == []
end
end
context 'token already assigned' do
before(:each) do
- @index.stub! :index => { :some_token => :already_assigned }
+ index.stub! :index => { :some_token => :already_assigned }
end
it 'should not assign it anymore' do
- @index.initialize_index_for :some_token
+ index.initialize_index_for :some_token
- @index.index[:some_token].should == :already_assigned
+ index.index[:some_token].should == :already_assigned
end
end
end
describe 'retrieve' do
before(:each) do
files = stub :files
files.should_receive(:retrieve).once.and_yield ' 1234', :some_token
- @index.stub! :files => files
+ index.stub! :files => files
@ary = stub :ary
@internal_index.should_receive(:[]).any_number_of_times.and_return @ary
- @index.stub! :index => @internal_index
+ index.stub! :index => @internal_index
end
context 'id key format' do
before(:each) do
- @index.should_receive(:[]).once.with(:key_format).and_return :to_i
+ index.should_receive(:[]).once.with(:key_format).and_return :to_i
end
it 'should call the other methods correctly' do
@ary.should_receive(:<<).once.with 1234
- @index.retrieve
+ index.retrieve
end
end
context 'other key format' do
before(:each) do
- @index.should_receive(:[]).once.with(:key_format).and_return :strip
+ index.should_receive(:[]).once.with(:key_format).and_return :strip
end
it 'should call the other methods correctly' do
@ary.should_receive(:<<).once.with '1234'
- @index.retrieve
+ index.retrieve
end
end
context 'no key format - default' do
before(:each) do
- @index.should_receive(:[]).once.with(:key_format).and_return nil
+ index.should_receive(:[]).once.with(:key_format).and_return nil
end
it 'should call the other methods correctly' do
@ary.should_receive(:<<).once.with 1234
- @index.retrieve
+ index.retrieve
end
end
end
describe 'load_from_index_file' do
it 'should call two methods in order' do
- @index.should_receive(:load_from_index_generation_message).once.ordered
- @index.should_receive(:clear).once.ordered
- @index.should_receive(:retrieve).once.ordered
+ index.should_receive(:load_from_index_generation_message).once.ordered
+ index.should_receive(:clear).once.ordered
+ index.should_receive(:retrieve).once.ordered
- @index.load_from_index_file
+ index.load_from_index_file
end
end
describe 'generate_derived' do
it 'should call two methods in order' do
- @index.should_receive(:generate_weights).once.ordered
- @index.should_receive(:generate_similarity).once.ordered
+ index.should_receive(:generate_weights).once.ordered
+ index.should_receive(:generate_similarity).once.ordered
- @index.generate_derived
+ index.generate_derived
end
end
describe 'generate_caches_from_memory' do
it 'should call two methods in order' do
- @index.should_receive(:cache_from_memory_generation_message).once.ordered
- @index.should_receive(:generate_derived).once.ordered
+ index.should_receive(:cache_from_memory_generation_message).once.ordered
+ index.should_receive(:generate_derived).once.ordered
- @index.generate_caches_from_memory
+ index.generate_caches_from_memory
end
end
describe 'generate_caches_from_source' do
it 'should call two methods in order' do
- @index.should_receive(:load_from_index_file).once.ordered
- @index.should_receive(:generate_caches_from_memory).once.ordered
+ index.should_receive(:load_from_index_file).once.ordered
+ index.should_receive(:generate_caches_from_memory).once.ordered
- @index.generate_caches_from_source
+ index.generate_caches_from_source
end
end
describe 'dump' do
it 'should trigger dumps' do
- @index.should_receive(:dump_index).once.with
- @index.should_receive(:dump_weights).once.with
- @index.should_receive(:dump_similarity).once.with
- @index.should_receive(:dump_configuration).once.with
+ index.should_receive(:dump_index).once.with
+ index.should_receive(:dump_weights).once.with
+ index.should_receive(:dump_similarity).once.with
+ index.should_receive(:dump_configuration).once.with
- @index.dump
+ index.dump
end
end
describe 'raise_unless_cache_exists' do
it "calls methods in order" do
- @index.should_receive(:raise_unless_index_exists).once.ordered
- @index.should_receive(:raise_unless_similarity_exists).once.ordered
+ index.should_receive(:raise_unless_index_exists).once.ordered
+ index.should_receive(:raise_unless_similarity_exists).once.ordered
- @index.raise_unless_cache_exists
+ index.raise_unless_cache_exists
end
end
describe 'raise_unless_index_exists' do
context 'partial strategy saved' do
before(:each) do
strategy = stub :strategy, :saved? => true
- @index.stub! :partial_strategy => strategy
+ index.stub! :partial_strategy => strategy
end
it "calls the methods in order" do
- @index.should_receive(:warn_if_index_small).once.ordered
- @index.should_receive(:raise_unless_index_ok).once.ordered
+ index.should_receive(:warn_if_index_small).once.ordered
+ index.should_receive(:raise_unless_index_ok).once.ordered
- @index.raise_unless_index_exists
+ index.raise_unless_index_exists
end
end
context 'partial strategy not saved' do
before(:each) do
strategy = stub :strategy, :saved? => false
- @index.stub! :partial_strategy => strategy
+ index.stub! :partial_strategy => strategy
end
it "calls nothing" do
- @index.should_receive(:warn_if_index_small).never
- @index.should_receive(:raise_unless_index_ok).never
+ index.should_receive(:warn_if_index_small).never
+ index.should_receive(:raise_unless_index_ok).never
- @index.raise_unless_index_exists
+ index.raise_unless_index_exists
end
end
end
describe 'raise_unless_similarity_exists' do
context 'similarity strategy saved' do
before(:each) do
strategy = stub :strategy, :saved? => true
- @index.stub! :similarity_strategy => strategy
+ index.stub! :similarity_strategy => strategy
end
it "calls the methods in order" do
- @index.should_receive(:warn_if_similarity_small).once.ordered
- @index.should_receive(:raise_unless_similarity_ok).once.ordered
+ index.should_receive(:warn_if_similarity_small).once.ordered
+ index.should_receive(:raise_unless_similarity_ok).once.ordered
- @index.raise_unless_similarity_exists
+ index.raise_unless_similarity_exists
end
end
context 'similarity strategy not saved' do
before(:each) do
strategy = stub :strategy, :saved? => false
- @index.stub! :similarity_strategy => strategy
+ index.stub! :similarity_strategy => strategy
end
it "calls nothing" do
- @index.should_receive(:warn_if_similarity_small).never
- @index.should_receive(:raise_unless_similarity_ok).never
+ index.should_receive(:warn_if_similarity_small).never
+ index.should_receive(:raise_unless_similarity_ok).never
- @index.raise_unless_similarity_exists
+ index.raise_unless_similarity_exists
end
end
end
describe 'warn_if_similarity_small' do
before(:each) do
- @files = @index.files
+ @files = index.files
end
context "files similarity cache small" do
before(:each) do
@files.stub! :similarity_cache_small? => true
end
it "warns" do
- @index.should_receive(:warn_cache_small).once.with :similarity
+ index.should_receive(:warn_cache_small).once.with :similarity
- @index.warn_if_similarity_small
+ index.warn_if_similarity_small
end
end
context "files similarity cache not small" do
before(:each) do
@files.stub! :similarity_cache_small? => false
end
it "does not warn" do
- @index.should_receive(:warn_cache_small).never
+ index.should_receive(:warn_cache_small).never
- @index.warn_if_similarity_small
+ index.warn_if_similarity_small
end
end
end
describe 'raise_unless_similarity_ok' do
before(:each) do
- @files = @index.files
+ @files = index.files
end
context "files similarity cache ok" do
before(:each) do
@files.stub! :similarity_cache_ok? => true
end
it "warns" do
- @index.should_receive(:raise_cache_missing).never
+ index.should_receive(:raise_cache_missing).never
- @index.raise_unless_similarity_ok
+ index.raise_unless_similarity_ok
end
end
context "files similarity cache not ok" do
before(:each) do
@files.stub! :similarity_cache_ok? => false
end
it "does not warn" do
- @index.should_receive(:raise_cache_missing).once.with :similarity
+ index.should_receive(:raise_cache_missing).once.with :similarity
- @index.raise_unless_similarity_ok
+ index.raise_unless_similarity_ok
end
end
end
describe 'initialization' do
it 'should initialize the index correctly' do
- @index.index.should == {}
+ index.index.should == {}
end
it 'should initialize the weights index correctly' do
- @index.weights.should == {}
+ index.weights.should == {}
end
it 'should initialize the similarity index correctly' do
- @index.similarity.should == {}
+ index.similarity.should == {}
end
it 'should initialize the configuration correctly' do
- @index.configuration.should == {}
+ index.configuration.should == {}
end
it 'should initialize the partial strategy correctly' do
- @index.partial_strategy.should == @partial
+ index.partial_strategy.should == @partial
end
it 'should initialize the weights strategy correctly' do
- @index.weights_strategy.should == @weights
+ index.weights_strategy.should == @weights
end
it 'should initialize the similarity strategy correctly' do
- @index.similarity_strategy.should == @similarity
+ index.similarity_strategy.should == @similarity
end
end
end
\ No newline at end of file