API CHANGE _id is aded to hash instances that get inserted / saved
This commit is contained in:
parent
402b895385
commit
723f823ea1
@ -501,7 +501,7 @@ module XGen
|
||||
}
|
||||
else
|
||||
objects = objects.collect do |o|
|
||||
o[:_id] || o['_id'] ? o : o.merge(:_id => ObjectID.new)
|
||||
o[:_id] || o['_id'] ? o : o.merge!(:_id => ObjectID.new)
|
||||
end
|
||||
end
|
||||
send_to_db(InsertMessage.new(@name, collection_name, true, *objects))
|
||||
|
@ -34,7 +34,6 @@ class TestCollection < Test::Unit::TestCase
|
||||
def test_safe_insert
|
||||
a = {"hello" => "world"}
|
||||
@@test.insert(a)
|
||||
a = @@test.find_one() # TODO we need this because insert doesn't add _id
|
||||
@@test.insert(a)
|
||||
assert @@db.error.include? "E11000"
|
||||
|
||||
@ -108,5 +107,24 @@ class TestCollection < Test::Unit::TestCase
|
||||
@@test.find_one(6)
|
||||
end
|
||||
end
|
||||
|
||||
def test_insert_adds_id
|
||||
doc = {"hello" => "world"}
|
||||
@@test.insert(doc)
|
||||
assert doc.include? :_id
|
||||
|
||||
docs = [{"hello" => "world"}, {"hello" => "world"}]
|
||||
@@test.insert(docs)
|
||||
docs.each do |doc|
|
||||
assert doc.include? :_id
|
||||
end
|
||||
end
|
||||
|
||||
def test_save_adds_id
|
||||
doc = {"hello" => "world"}
|
||||
@@test.save(doc)
|
||||
assert doc.include? :_id
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -636,19 +636,18 @@ class DBAPITest < Test::Unit::TestCase
|
||||
assert_kind_of ObjectID, id
|
||||
assert_equal 1, @@coll.count
|
||||
|
||||
assert_equal id, @@coll.save(@@coll.find_one)
|
||||
assert_equal id, @@coll.save(a)
|
||||
assert_equal 1, @@coll.count
|
||||
|
||||
assert_equal "world", @@coll.find_one()["hello"]
|
||||
|
||||
doc = @@coll.find_one
|
||||
doc["hello"] = "mike"
|
||||
@@coll.save(doc)
|
||||
a["hello"] = "mike"
|
||||
@@coll.save(a)
|
||||
assert_equal 1, @@coll.count
|
||||
|
||||
assert_equal "mike", @@coll.find_one()["hello"]
|
||||
|
||||
@@coll.save(a)
|
||||
@@coll.save({"hello" => "world"})
|
||||
assert_equal 2, @@coll.count
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user