TEST(ReaderTest, TestStatusZeroSizeBuffer) { uint8_t array[1]; Reader reader; reader.Initialize(gsl::span<const std::uint8_t>(array, 0)); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestStatusValidBuffer) { Reader reader; uint8_t array[] = {0x55, 0xaa}; reader.Initialize(array); ASSERT_TRUE(reader.Status()); }
TEST(ReaderTest, TestReadingWordLE) { Reader reader; uint8_t array[] = {0x55, 0xaa}; reader.Initialize(array); ASSERT_THAT(reader.ReadWordLE(), Eq(0xaa55)); 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, TestReadArray) { Reader reader; const uint8_t array[] = {0x55, 0xaa, 0x77}; reader.Initialize(array); ASSERT_THAT(reader.ReadArray(3), Eq(gsl::make_span(array))); ASSERT_TRUE(reader.Status()); }
TEST(ReaderTest, TestReadArrayBeyondEnd) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77}; reader.Initialize(array); ASSERT_THAT(reader.ReadArray(4).empty(), Eq(true)); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestReadingDWordLEBeyondEnd) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77}; reader.Initialize(array); reader.ReadDoubleWordLE(); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestReadingQuadLEBeyondEnd) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77, 0xee, 0x66, 0xcc, 0x44}; reader.Initialize(array); reader.ReadQuadWordLE(); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestReadingQuadWordLE) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77, 0xee, 0x66, 0xcc, 0x44, 0x88}; reader.Initialize(array); ASSERT_THAT(reader.ReadQuadWordLE(), Eq(0x8844CC66EE77AA55ULL)); ASSERT_TRUE(reader.Status()); }
TEST(ReaderTest, TestReadingDWordLE) { Reader reader; uint8_t array[] = {0x55, 0xaa, 0x77, 0xee}; reader.Initialize(array); ASSERT_THAT(reader.ReadDoubleWordLE(), Eq(0xEE77AA55U)); ASSERT_TRUE(reader.Status()); }
TEST(ReaderTest, TestReadingWordBEBeyondEnd) { Reader reader; uint8_t array[] = {0x55}; reader.Initialize(array); reader.ReadWordBE(); ASSERT_FALSE(reader.Status()); }
TEST(ReaderTest, TestReadingSingleByteBeyondEnd) { Reader reader; uint8_t array[] = {0x55}; reader.Initialize(array); reader.ReadByte(); reader.ReadByte(); ASSERT_FALSE(reader.Status()); }
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, TestDefaultCtor) { Reader reader; ASSERT_FALSE(reader.Status()); ASSERT_THAT(reader.RemainingSize(), Eq(0)); }