TEST(ReaderTest, TestRemainigSizeAtTheEnd) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77, 0xee, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99}; reader.Initialize(array); reader.ReadByte(); reader.ReadWordLE(); reader.ReadDoubleWordLE(); reader.ReadArray(3); reader.ReadByte(); reader.ReadWordBE(); ASSERT_THAT(reader.RemainingSize(), Eq(0)); }
TEST(ReaderTest, TestReadingWithInvalidState) { Reader reader; uint8_t array[] = {0x55}; reader.Initialize(array); reader.ReadByte(); reader.ReadWordLE(); reader.ReadWordBE(); reader.ReadDoubleWordLE(); reader.ReadArray(3); reader.ReadByte(); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestReadingMovesPosition) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77, 0xee, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99}; reader.Initialize(array); ASSERT_THAT(reader.ReadByte(), Eq(0x55)); ASSERT_THAT(reader.ReadWordLE(), Eq(0x77AA)); ASSERT_THAT(reader.ReadDoubleWordLE(), Eq(0x332211EEU)); ASSERT_THAT(reader.ReadArray(3), Eq(gsl::span<const std::uint8_t>(array + 7, 3))); ASSERT_THAT(reader.ReadByte(), Eq(0x77)); ASSERT_THAT(reader.ReadWordBE(), Eq(0x8899)); ASSERT_TRUE(reader.Status()); }
TEST(ReaderTest, TestReadingSingleByte) { Reader reader; uint8_t array[] = {0x55, 0xaa}; reader.Initialize(array); ASSERT_THAT(reader.ReadByte(), Eq(0x55)); ASSERT_TRUE(reader.Status()); }
TEST(ReaderTest, TestReadingSingleByteBeyondEnd) { Reader reader; uint8_t array[] = {0x55}; reader.Initialize(array); reader.ReadByte(); reader.ReadByte(); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestRemainigSize) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77, 0xee, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77}; reader.Initialize(array); reader.ReadByte(); reader.ReadWordLE(); reader.ReadDoubleWordLE(); ASSERT_THAT(reader.RemainingSize(), Eq(static_cast<int32_t>(COUNT_OF(array) - 7))); }