48 class MockByteSource :
public ByteSource {
50 MockByteSource(StringPiece
data,
int block_size)
53 size_t Available()
const {
return data_.size(); }
64 TEST(ByteSourceTest, CopyTo) {
65 StringPiece
data(
"Hello world!");
68 StringByteSink sink(&
str);
74 TEST(ByteSourceTest, CopySubstringTo) {
75 StringPiece
data(
"Hello world!");
79 StringByteSink sink(&
str);
86 TEST(ByteSourceTest, LimitByteSource) {
87 StringPiece
data(
"Hello world!");
89 LimitByteSource limit_source(&
source, 6);
96 StringByteSink sink(&
str);
97 limit_source.CopyTo(&sink, limit_source.Available());
105 StringByteSink sink(&
str);
112 TEST(ByteSourceTest, CopyToStringByteSink) {
113 StringPiece
data(
"Hello world!");
116 StringByteSink sink(&
str);
122 class FlushingByteSink :
public StringByteSink {
124 explicit FlushingByteSink(
string*
dest) : StringByteSink(
dest) {}
125 virtual void Flush() {
Append(
"z", 1); }
131 void WriteAndFlush(ByteSink* s) {
136 TEST(ByteSinkTest, Flush) {
138 FlushingByteSink f_sink(&
str);
139 WriteAndFlush(&f_sink);