@@ -102,6 +102,23 @@ public void TestBoolean()
102
102
Assert . True ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
103
103
}
104
104
105
+ [ Fact ]
106
+ public void TestBsonDecimal128 ( )
107
+ {
108
+ var value = ( BsonDecimal128 ) 1.5M ;
109
+ var c = new C { Obj = value } ;
110
+
111
+ var json = c . ToJson ( ) ;
112
+ json . Should ( ) . Be ( "{ \" Obj\" : { \" _t\" : \" MongoDB.Bson.BsonDecimal128, MongoDB.Bson\" , \" _v\" : NumberDecimal(\" 1.5\" ) } }" ) ;
113
+
114
+ var bson = c . ToBson ( ) ;
115
+ var rehydrated = BsonSerializer . Deserialize < C > ( bson ) ;
116
+ rehydrated . Obj . Should ( ) . BeOfType < BsonDecimal128 > ( ) ;
117
+ rehydrated . Obj . Should ( ) . Be ( value ) ;
118
+
119
+ rehydrated . ToBson ( ) . Should ( ) . Equal ( bson ) ;
120
+ }
121
+
105
122
[ Fact ]
106
123
public void TestDateTime ( )
107
124
{
@@ -118,27 +135,35 @@ public void TestDateTime()
118
135
[ Fact ]
119
136
public void TestDecimal ( )
120
137
{
121
- var c = new C { Obj = 1.5M } ;
138
+ var value = 1.5M ;
139
+ var c = new C { Obj = value } ;
140
+
122
141
var json = c . ToJson ( ) ;
123
- var expected = "{ 'Obj' : NumberDecimal('1.5') }" . Replace ( "'" , "\" " ) ;
124
- Assert . Equal ( expected , json ) ;
142
+ json . Should ( ) . Be ( "{ \" Obj\" : { \" _t\" : \" System.Decimal\" , \" _v\" : \" 1.5\" } }" ) ;
125
143
126
144
var bson = c . ToBson ( ) ;
127
145
var rehydrated = BsonSerializer . Deserialize < C > ( bson ) ;
128
- Assert . True ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
146
+ rehydrated . Obj . Should ( ) . BeOfType < decimal > ( ) ;
147
+ rehydrated . Obj . Should ( ) . Be ( value ) ;
148
+
149
+ rehydrated . ToBson ( ) . Should ( ) . Equal ( bson ) ;
129
150
}
130
151
131
152
[ Fact ]
132
153
public void TestDecimal128 ( )
133
154
{
134
- var c = new C { Obj = ( Decimal128 ) 1.5M } ;
155
+ var value = ( Decimal128 ) 1.5M ;
156
+ var c = new C { Obj = value } ;
157
+
135
158
var json = c . ToJson ( ) ;
136
- var expected = "{ 'Obj' : NumberDecimal('1.5') }" . Replace ( "'" , "\" " ) ;
137
- Assert . Equal ( expected , json ) ;
159
+ json . Should ( ) . Be ( "{ \" Obj\" : NumberDecimal(\" 1.5\" ) }" ) ;
138
160
139
161
var bson = c . ToBson ( ) ;
140
162
var rehydrated = BsonSerializer . Deserialize < C > ( bson ) ;
141
- Assert . True ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
163
+ rehydrated . Obj . Should ( ) . BeOfType < Decimal128 > ( ) ;
164
+ rehydrated . Obj . Should ( ) . Be ( value ) ;
165
+
166
+ rehydrated . ToBson ( ) . Should ( ) . Equal ( bson ) ;
142
167
}
143
168
144
169
[ Fact ]
0 commit comments