@@ -22,12 +22,58 @@ TEST(MsgPackDocument, DocNodeTest) {
22
22
ASSERT_TRUE (Str1 == Str2);
23
23
}
24
24
25
+ TEST (MsgPackDocument, TestReadBoolean) {
26
+ Document Doc1;
27
+ bool Ok = Doc1.readFromBlob (StringRef (" \xC2 " , 1 ), /* Multi=*/ false );
28
+ ASSERT_TRUE (Ok);
29
+ ASSERT_EQ (Doc1.getRoot ().getKind (), Type::Boolean);
30
+ ASSERT_EQ (Doc1.getRoot ().getBool (), false );
31
+ Document Doc2;
32
+ Ok = Doc2.readFromBlob (StringRef (" \xC3 " , 1 ), /* Multi=*/ false );
33
+ ASSERT_TRUE (Ok);
34
+ ASSERT_EQ (Doc2.getRoot ().getKind (), Type::Boolean);
35
+ ASSERT_EQ (Doc2.getRoot ().getBool (), true );
36
+ }
37
+
25
38
TEST (MsgPackDocument, TestReadInt) {
26
- Document Doc;
27
- bool Ok = Doc.readFromBlob (StringRef (" \xd0\x00 " , 2 ), /* Multi=*/ false );
39
+ Document Doc1;
40
+ bool Ok = Doc1.readFromBlob (StringRef (" \xD0\x00 " , 2 ), /* Multi=*/ false );
41
+ ASSERT_TRUE (Ok);
42
+ ASSERT_EQ (Doc1.getRoot ().getKind (), Type::Int);
43
+ ASSERT_EQ (Doc1.getRoot ().getInt (), 0 );
44
+ Document Doc2;
45
+ Ok = Doc2.readFromBlob (StringRef (" \xFF " , 1 ), /* Multi=*/ false );
46
+ ASSERT_TRUE (Ok);
47
+ ASSERT_EQ (Doc2.getRoot ().getKind (), Type::Int);
48
+ ASSERT_EQ (Doc2.getRoot ().getInt (), -1 );
49
+ }
50
+
51
+ TEST (MsgPackDocument, TestReadUInt) {
52
+ Document Doc1;
53
+ bool Ok = Doc1.readFromBlob (StringRef (" \xCC\x00 " , 2 ), /* Multi=*/ false );
54
+ ASSERT_TRUE (Ok);
55
+ ASSERT_EQ (Doc1.getRoot ().getKind (), Type::UInt);
56
+ ASSERT_EQ (Doc1.getRoot ().getUInt (), 0U );
57
+ Document Doc2;
58
+ Ok = Doc2.readFromBlob (StringRef (" \x01 " , 1 ), /* Multi=*/ false );
28
59
ASSERT_TRUE (Ok);
29
- ASSERT_EQ (Doc.getRoot ().getKind (), Type::Int);
30
- ASSERT_EQ (Doc.getRoot ().getInt (), 0 );
60
+ ASSERT_EQ (Doc2.getRoot ().getKind (), Type::UInt);
61
+ ASSERT_EQ (Doc2.getRoot ().getUInt (), 1U );
62
+ }
63
+
64
+ TEST (MsgPackDocument, TestReadFloat) {
65
+ Document Doc1;
66
+ bool Ok =
67
+ Doc1.readFromBlob (StringRef (" \xCA\x3F\x80\x00\x00 " , 5 ), /* Multi=*/ false );
68
+ ASSERT_TRUE (Ok);
69
+ ASSERT_EQ (Doc1.getRoot ().getKind (), Type::Float);
70
+ ASSERT_EQ (Doc1.getRoot ().getFloat (), 1.0 );
71
+ Document Doc2;
72
+ Ok = Doc2.readFromBlob (StringRef (" \xCB\x48\x3D\x63\x29\xF1\xC3\x5C\xA5 " , 9 ),
73
+ /* Multi=*/ false );
74
+ ASSERT_TRUE (Ok);
75
+ ASSERT_EQ (Doc2.getRoot ().getKind (), Type::Float);
76
+ ASSERT_EQ (Doc2.getRoot ().getFloat (), 1e40 );
31
77
}
32
78
33
79
TEST (MsgPackDocument, TestReadBinary) {
@@ -192,12 +238,54 @@ TEST(MsgPackDocument, TestReadMergeMap) {
192
238
ASSERT_EQ (BayS.getInt (), 8 );
193
239
}
194
240
241
+ TEST (MsgPackDocument, TestWriteBoolean) {
242
+ Document Doc;
243
+ Doc.getRoot () = true ;
244
+ std::string Buffer;
245
+ Doc.writeToBlob (Buffer);
246
+ ASSERT_EQ (Buffer, " \xc3 " );
247
+ Doc.getRoot () = false ;
248
+ Doc.writeToBlob (Buffer);
249
+ ASSERT_EQ (Buffer, " \xc2 " );
250
+ }
251
+
195
252
TEST (MsgPackDocument, TestWriteInt) {
196
253
Document Doc;
197
254
Doc.getRoot () = 1 ;
198
255
std::string Buffer;
199
256
Doc.writeToBlob (Buffer);
200
257
ASSERT_EQ (Buffer, " \x01 " );
258
+ Doc.getRoot () = -1 ;
259
+ Doc.writeToBlob (Buffer);
260
+ ASSERT_EQ (Buffer, " \xFF " );
261
+ Doc.getRoot () = -4096 ;
262
+ Doc.writeToBlob (Buffer);
263
+ ASSERT_EQ (Buffer, StringRef (" \xD1\xF0\x00 " , 3 ));
264
+ }
265
+
266
+ TEST (MsgPackDocument, TestWriteUInt) {
267
+ Document Doc;
268
+ Doc.getRoot () = 1U ;
269
+ std::string Buffer;
270
+ Doc.writeToBlob (Buffer);
271
+ ASSERT_EQ (Buffer, " \x01 " );
272
+ Doc.getRoot () = 4096U ;
273
+ Doc.writeToBlob (Buffer);
274
+ ASSERT_EQ (Buffer, StringRef (" \xCD\x10\x00 " , 3 ));
275
+ }
276
+
277
+ TEST (MsgPackDocument, TestWriteFloat) {
278
+ Document Doc;
279
+ Doc.getRoot () = 1.0 ;
280
+ std::string Buffer;
281
+ Doc.writeToBlob (Buffer);
282
+ ASSERT_EQ (Buffer, StringRef (" \xCA\x3F\x80\x00\x00 " , 5 ));
283
+ Doc.getRoot () = 1 .0f ;
284
+ Doc.writeToBlob (Buffer);
285
+ ASSERT_EQ (Buffer, StringRef (" \xCA\x3F\x80\x00\x00 " , 5 ));
286
+ Doc.getRoot () = 1e40 ;
287
+ Doc.writeToBlob (Buffer);
288
+ ASSERT_EQ (Buffer, " \xCB\x48\x3D\x63\x29\xF1\xC3\x5C\xA5 " );
201
289
}
202
290
203
291
TEST (MsgPackDocument, TestWriteBinary) {
0 commit comments