Message message = frame(transaction1);
List<Entry> entries = Lists.newArrayList();
// Should be read and skipped.
Entry orphanChunkEntry = createMock(Entry.class);
expect(orphanChunkEntry.contents()).andReturn(encode(message.chunks.get(0)));
entries.add(orphanChunkEntry);
// Should be read and skipped.
Entry headerEntry = createMock(Entry.class);
expect(headerEntry.contents()).andReturn(encode(message.header));
entries.add(headerEntry);
// We start a valid message, these frames should be read as 1 entry.
expect(headerEntry.contents()).andReturn(encode(message.header));
entries.add(headerEntry);
for (LogEntry chunk : message.chunks) {
Entry chunkEntry = createMock(Entry.class);
expect(chunkEntry.contents()).andReturn(encode(chunk));
entries.add(chunkEntry);
}
// Should be read and skipped.
expect(orphanChunkEntry.contents()).andReturn(encode(message.chunks.get(0)));
entries.add(orphanChunkEntry);
// Should be read and skipped.
expect(headerEntry.contents()).andReturn(encode(message.header));
entries.add(headerEntry);
// Should be read as 1 entry.
Entry standardEntry = createMock(Entry.class);
expect(standardEntry.contents()).andReturn(encode(transaction2));
entries.add(standardEntry);
expect(stream.readAll()).andReturn(entries.iterator());
Closure<LogEntry> reader = createMock(new Clazz<Closure<LogEntry>>() { });