1
1
use bson:: { Bson , Document } ;
2
2
use bson:: ValueAccessError ;
3
+ use bson:: spec:: BinarySubtype ;
3
4
use bson:: oid:: ObjectId ;
4
5
use chrono:: UTC ;
5
6
@@ -41,6 +42,7 @@ fn ordered_insert_shorthand() {
41
42
fn test_getters ( ) {
42
43
let datetime = UTC :: now ( ) ;
43
44
let cloned_dt = datetime. clone ( ) ;
45
+ let binary = vec ! [ 0 , 1 , 2 , 3 , 4 ] ;
44
46
let mut doc = doc ! {
45
47
"floating_point" => 10.0 ,
46
48
"string" => "a value" ,
@@ -49,7 +51,8 @@ fn test_getters() {
49
51
"bool" => true ,
50
52
"i32" => 1i32 ,
51
53
"i64" => 1i64 ,
52
- "datetime" => cloned_dt
54
+ "datetime" => cloned_dt,
55
+ "binary" => ( BinarySubtype :: Generic , binary. clone( ) )
53
56
} ;
54
57
55
58
assert_eq ! ( None , doc. get( "nonsense" ) ) ;
@@ -88,13 +91,16 @@ fn test_getters() {
88
91
assert_eq ! ( Some ( & Bson :: TimeStamp ( 100 ) ) , doc. get( "timestamp" ) ) ;
89
92
assert_eq ! ( Ok ( 100i64 ) , doc. get_time_stamp( "timestamp" ) ) ;
90
93
94
+ assert_eq ! ( Some ( & Bson :: UtcDatetime ( datetime. clone( ) ) ) , doc. get( "datetime" ) ) ;
95
+ assert_eq ! ( Ok ( & datetime) , doc. get_utc_datetime( "datetime" ) ) ;
96
+
91
97
let object_id = ObjectId :: new ( ) . unwrap ( ) ;
92
98
doc. insert ( "_id" . to_string ( ) , Bson :: ObjectId ( object_id. clone ( ) ) ) ;
93
99
assert_eq ! ( Some ( & Bson :: ObjectId ( object_id. clone( ) ) ) , doc. get( "_id" ) ) ;
94
100
assert_eq ! ( Ok ( & object_id) , doc. get_object_id( "_id" ) ) ;
95
101
96
- assert_eq ! ( Some ( & Bson :: UtcDatetime ( datetime . clone( ) ) ) , doc. get( "datetime " ) ) ;
97
- assert_eq ! ( Ok ( & datetime ) , doc. get_utc_datetime ( "datetime ") ) ;
102
+ assert_eq ! ( Some ( & Bson :: Binary ( BinarySubtype :: Generic , binary . clone( ) ) ) , doc. get( "binary " ) ) ;
103
+ assert_eq ! ( Ok ( & binary ) , doc. get_binary_generic ( "binary ") ) ;
98
104
}
99
105
100
106
#[ test]
0 commit comments