Fixed boolean BSON type constant. More tests.
This commit is contained in:
parent
c75bee763b
commit
e8f3696c77
|
@ -305,7 +305,7 @@ class BSON
|
||||||
when XGen::Mongo::Driver::ObjectID
|
when XGen::Mongo::Driver::ObjectID
|
||||||
OID
|
OID
|
||||||
when true, false
|
when true, false
|
||||||
Boolean
|
BOOLEAN
|
||||||
when Time
|
when Time
|
||||||
DATE
|
DATE
|
||||||
when Hash
|
when Hash
|
||||||
|
|
|
@ -9,15 +9,69 @@ class BSONTest < Test::Unit::TestCase
|
||||||
@b = BSON.new
|
@b = BSON.new
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_object_encoding
|
def test_string
|
||||||
|
doc = {'doc' => 'hello, world'}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_code
|
||||||
|
doc = {'$where' => 'this.a.b < this.b'}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_number
|
||||||
|
doc = {'doc' => 41.99}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_int
|
||||||
|
doc = {'doc' => 42}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_object
|
||||||
doc = {'doc' => {'age' => 42, 'name' => 'Spongebob', 'shoe_size' => 9.5}}
|
doc = {'doc' => {'age' => 42, 'name' => 'Spongebob', 'shoe_size' => 9.5}}
|
||||||
@b.serialize(doc)
|
@b.serialize(doc)
|
||||||
assert_equal doc, @b.deserialize
|
assert_equal doc, @b.deserialize
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_code_encoding
|
def test_oid
|
||||||
doc = {'$where' => 'this.a.b < this.b'}
|
doc = {'doc' => XGen::Mongo::Driver::ObjectID.new}
|
||||||
@b.serialize(doc)
|
@b.serialize(doc)
|
||||||
assert_equal doc, @b.deserialize
|
assert_equal doc, @b.deserialize
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_array
|
||||||
|
doc = {'doc' => [1, 2, 'a', 'b']}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_regex
|
||||||
|
doc = {'doc' => /foobar/i}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_boolean
|
||||||
|
doc = {'doc' => true}
|
||||||
|
@b.serialize(doc)
|
||||||
|
assert_equal doc, @b.deserialize
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_date
|
||||||
|
doc = {'date' => Time.now}
|
||||||
|
@b.serialize(doc)
|
||||||
|
doc2 = @b.deserialize
|
||||||
|
# Mongo only stores seconds, so comparing raw Time objects will fail
|
||||||
|
# because the fractional seconds will be different.
|
||||||
|
assert_equal doc['date'].to_i, doc2['date'].to_i
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_null
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue