1 #include <gtest/gtest.h>
2 #include "src/string_reader.h"
4 namespace reader = utakata::reader;
6 TEST(StringReaderTest, Test1) {
7 // StringReaderを用いた読み出しを行う。
8 reader::StringReader reader("hoge");
10 EXPECT_EQ(reader.GetSize(), 4);
12 EXPECT_EQ(reader.Read(), 'h');
13 EXPECT_EQ(reader.GetPos(), 1);
15 EXPECT_EQ(reader.Peek(), 'o');
16 EXPECT_EQ(reader.Read(), 'o');
17 std::vector<unsigned char> t = reader.Read(2);
21 EXPECT_EQ(reader.GetPos(), 4);
23 EXPECT_EQ(reader.GetPos(), 0);
25 EXPECT_TRUE(reader.Seek(1, reader::kForward));
26 EXPECT_EQ(reader.Read(), 'o');
29 EXPECT_TRUE(reader.Seek(1, reader::kBackward, &seeksize));
30 EXPECT_EQ(seeksize, 1);
31 EXPECT_EQ(reader.Read(), 'o');
36 EXPECT_TRUE(reader.IsEof());
38 // すでに末尾であるのに進もうとすると例外が発生する。
39 EXPECT_THROW(reader.Read(), reader::EndOfDeviceException);
42 int main(int argc, char** argv) {
43 testing::InitGoogleTest(&argc, argv);
45 return RUN_ALL_TESTS();