test/test_cursor.rb in mongo-0.18.2 vs test/test_cursor.rb in mongo-0.18.3
- old
+ new
@@ -1,6 +1,7 @@
require 'test/test_helper'
+require 'logger'
# NOTE: assumes Mongo is running
class CursorTest < Test::Unit::TestCase
include Mongo
@@ -15,15 +16,10 @@
@@coll.remove
@@coll.insert('a' => 1) # collection not created until it's used
@@coll_full_name = 'ruby-mongo-test.test'
end
- def teardown
- @@coll.remove
- @@db.error
- end
-
def test_explain
cursor = @@coll.find('a' => 1)
explaination = cursor.explain
assert_not_nil explaination['cursor']
assert_kind_of Numeric, explaination['n']
@@ -108,9 +104,45 @@
assert_equal 2000, @@coll.find().sort([:created_at, :asc]).next_document["created_at"].year
assert_equal 2004, @@coll.find().sort([:created_at, :desc]).next_document["created_at"].year
assert_equal 2000, @@coll.find().sort([[:created_at, :asc]]).next_document["created_at"].year
assert_equal 2004, @@coll.find().sort([[:created_at, :desc]]).next_document["created_at"].year
+ end
+
+ def test_sort_min_max_keys
+ @@coll.remove
+ @@coll.insert({"n" => 1000000})
+ @@coll.insert({"n" => -1000000})
+ @@coll.insert({"n" => MaxKey.new})
+ @@coll.insert({"n" => MinKey.new})
+
+ results = @@coll.find.sort([:n, :asc]).to_a
+
+ assert_equal MinKey.new, results[0]['n']
+ assert_equal -1000000, results[1]['n']
+ assert_equal 1000000, results[2]['n']
+ assert_equal MaxKey.new, results[3]['n']
+ end
+
+ def test_id_range_queries
+ @@coll.remove
+
+ t1 = Time.now
+ t1_id = ObjectID.from_time(t1)
+ @@coll.save({:t => 't1'})
+ @@coll.save({:t => 't1'})
+ @@coll.save({:t => 't1'})
+ sleep(2)
+ t2 = Time.now
+ t2_id = ObjectID.from_time(t2)
+ @@coll.save({:t => 't2'})
+ @@coll.save({:t => 't2'})
+ @@coll.save({:t => 't2'})
+
+ assert_equal 3, @@coll.find({'_id' => {'$gt' => t1_id}, '_id' => {'$lt' => t2_id}}).count
+ @@coll.find({'_id' => {'$gt' => t2_id}}).each do |doc|
+ assert_equal 't2', doc['t']
+ end
end
def test_limit
@@coll.remove