@@ -444,6 +444,50 @@ TEST(JsonReaderTest, readUnorderedBitBuffer)
444
444
reflectable->find (" nested.creatorBitmask" )->getUInt8 ());
445
445
}
446
446
447
+ TEST (JsonReaderTest, readEmptyBitBuffer)
448
+ {
449
+ std::stringstream str (
450
+ " {\n "
451
+ " \" value\" : 13,\n "
452
+ " \" nested\" : {\n "
453
+ " \" value\" : 10,\n "
454
+ " \" text\" : \" nested\" ,\n "
455
+ " \" externData\" : {\n "
456
+ " \" buffer\" : [\n "
457
+ " ],\n "
458
+ " \" bitSize\" : 0\n "
459
+ " },\n "
460
+ " \" bytesData\" : {\n "
461
+ " \" buffer\" : [\n "
462
+ " 202,\n "
463
+ " 254\n "
464
+ " ]\n "
465
+ " },\n "
466
+ " \" creatorEnum\" : -1,\n "
467
+ " \" creatorBitmask\" : 1\n "
468
+ " }\n "
469
+ " }" );
470
+
471
+ JsonReader jsonReader (str);
472
+ auto reflectable = jsonReader.read (CreatorObject::typeInfo ());
473
+ ASSERT_TRUE (reflectable);
474
+
475
+ reflectable->initializeChildren ();
476
+
477
+ ASSERT_EQ (13 , reflectable->getField (" value" )->getUInt32 ());
478
+ ASSERT_EQ (13 , reflectable->getField (" nested" )->getParameter (" param" )->getUInt32 ());
479
+ ASSERT_EQ (10 , reflectable->find (" nested.value" )->getUInt32 ());
480
+ ASSERT_EQ (" nested" _sv, reflectable->find (" nested.text" )->getStringView ());
481
+ ASSERT_EQ (BitBuffer (), reflectable->find (" nested.externData" )->getBitBuffer ());
482
+ const Span<const uint8_t > bytesData = reflectable->find (" nested.bytesData" )->getBytes ();
483
+ ASSERT_EQ (2 , bytesData.size ());
484
+ ASSERT_EQ (0xCA , bytesData[0 ]);
485
+ ASSERT_EQ (0xFE , bytesData[1 ]);
486
+ ASSERT_EQ (enumToValue (CreatorEnum::MinusOne), reflectable->find (" nested.creatorEnum" )->getInt8 ());
487
+ ASSERT_EQ (CreatorBitmask (CreatorBitmask::Values::READ).getValue (),
488
+ reflectable->find (" nested.creatorBitmask" )->getUInt8 ());
489
+ }
490
+
447
491
TEST (JsonReaderTest, readStringifiedEnum)
448
492
{
449
493
checkReadStringifiedEnum (" ONE" , CreatorEnum::ONE);
0 commit comments