spec/supernova/condition_spec.rb in supernova-0.7.3 vs spec/supernova/condition_spec.rb in supernova-0.7.4
- old
+ new
@@ -5,10 +5,70 @@
cond = Supernova::Condition.new(:user_id, :not)
cond.key.should == :user_id
cond.type.should == :not
end
- describe "solr_filter_for" do
+ describe "equality" do
+ it "returns true when the same" do
+ :user_id.not.should == :user_id.not
+ end
+
+ it "returns false when other key" do
+ :user_id.not.should_not == :other_user_id.not
+ end
+
+ it "returns false when other method" do
+ :user_id.in.should_not == :user_id.not
+ end
+
+ it "returns true when the same" do
+ :user_id.not.should be_eql(:user_id.not)
+ end
+
+ it "returns false when other key" do
+ :user_id.not.should_not be_eql(:other_user_id.not)
+ end
+
+ it "returns false when other method" do
+ :user_id.in.should_not be_eql(:user_id.not)
+ end
+
+ it "works for hashes" do
+ a = { :user_id.in => 1 }
+ a[:user_id.in] = 2
+ a.keys.length.should == 1
+ a[:user_id.in].should == 2
+ a[:user_id.not] = 2
+ a.keys.length.should == 2
+ end
+ end
+
+ describe "#or_key_and_value", :wip => true do
+ it "returns the correct filter" do
+ ne = double("ne", :lat => 48.0, :lng => 12.0)
+ sw = double("sw", :lat => 47.0, :lng => 11.0)
+ bounding_box = double("bbox", :ne => ne, :sw => sw)
+ :pt.in.or_key_and_value(bounding_box).should == "pt:[47.0,11.0 TO 48.0,12.0]"
+ end
+
+ it "returns the correct filter" do
+ ne = double("ne", :lat => 48.0, :lng => 12.0)
+ sw = double("sw", :lat => 47.0, :lng => 11.0)
+ bounding_box = double("bbox", :ne => ne, :sw => sw)
+ :pt.inside.or_key_and_value(bounding_box).should == "pt:{47.0,11.0 TO 48.0,12.0}"
+ end
+
+ end
+
+ describe "solr_filter_for", :wip => true do
+ it "returns the correct filter" do
+ sw = Geokit::LatLng.new(47.1, 11.1)
+ ne = Geokit::LatLng.new(48.2, 12.2)
+ bounds = Geokit::Bounds.new(sw, ne)
+ :location_p.inside.solr_filter_for(bounds).should == "location_p:{47.1,11.1 TO 48.2,12.2}"
+ end
+
+
it "returns the correct filter for numbers" do
:user_id.not.solr_filter_for(7).should == "!user_id:7"
end
it "returns the correct filter for numbers" do