public void testWritesWriteRequestQueueWhenFinished() throws Exception {
StreamWriteFilter filter = new StreamWriteFilter();
WriteRequest wrs[] = new WriteRequest[] {
new DefaultWriteRequest(new Object(), new DummyWriteFuture()),
new DefaultWriteRequest(new Object(), new DummyWriteFuture()),
new DefaultWriteRequest(new Object(), new DummyWriteFuture()) };
Queue<WriteRequest> queue = new LinkedList<WriteRequest>();
queue.add(wrs[0]);
queue.add(wrs[1]);
queue.add(wrs[2]);
InputStream stream = new ByteArrayInputStream(BUF);
/*
* Make up the situation.
*/
session.setAttribute(StreamWriteFilter.CURRENT_STREAM, stream);
session.setAttribute(StreamWriteFilter.CURRENT_WRITE_REQUEST,
new DefaultWriteRequest(stream));
session.setAttribute(StreamWriteFilter.WRITE_REQUEST_QUEUE, queue);
/*
* Record expectations
*/
nextFilter.filterWrite(session, wrs[0]);
nextFilter.filterWrite(session, wrs[1]);
nextFilter.filterWrite(session, wrs[2]);
nextFilter.messageSent(session, new DefaultWriteRequest(stream));
mockNextFilter.setMatcher(new WriteRequestMatcher());
/*
* Replay.
*/
mockNextFilter.replay();
filter.messageSent(nextFilter, session, new DefaultWriteRequest(
new Object()));
assertEquals(0, queue.size());
/*
* Verify.