spec/storage_spec.rb in seasyar-0.0.2 vs spec/storage_spec.rb in seasyar-0.0.8
- old
+ new
@@ -1,21 +1,49 @@
$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
-require 'activerecordstorage'
-require 'fragmentizer'
+require 'seasyar'
+require 'seasy'
require 'active_record'
describe Seasyar::ActiveRecordStorage do
before :all do
-# ActiveRecord::Base.logger = Logger.new('log/debug.log')
ActiveRecord::Base.configurations = YAML::load(IO.read('db/config.yml'))
ActiveRecord::Base.establish_connection('development')
end
it "should save entries and make them searchable" do
target = 1
weights = Fragmentizer.new.fragmentize 'test'
- subject.save target, weights
- subject.query( 'es' ).should == {"1" => 1}
+ subject.save target, weights, :source => "1"
+ subject.search( 'es' ).should == {"1" => 1}
+ end
+
+ it "should remove entries when saving new ones" do
+ target = 1
+ weights = Fragmentizer.new.fragmentize 'test'
+ subject.save target, weights, :source => "1"
+
+ weights = Fragmentizer.new.fragmentize 'different'
+ subject.save target, weights, :source => "1"
+
+ subject.search( 'es' ).should == {}
+ end
+
+ it "should accept a source as basis for what to delete in between adding" do
+ Seasy.configure do |config|
+ config.storage = Seasyar::ActiveRecordStorage
+ end
+ i = Seasy::Index.new
+ i.add 'ruben', 'landsnora', :source => 'veddesta'
+ i.search( 'ruben' ).should == {'landsnora' => 1}
+
+ i.add 'ruben', 'edsberg', :source => 'edsberg'
+ i.search( 'ruben' ).should == {'landsnora' => 1, 'edsberg' => 1}
+
+ i.add 'sten', 'landsnora', :source => 'veddesta'
+ i.search( 'ruben' ).should == {'edsberg' => 1}
+
+ i.add 'sten', 'edsberg', :source => 'edsberg'
+ i.search( 'ruben' ).should == {}
end
end
\ No newline at end of file