@Test public void testDecodingFileWithBufferedSessionData() throws Exception {
  ReadableByteChannel channel=new ReadableByteChannelMock(new String[]{"stuff; ","more stuff; ","a lot more stuff!!!"},"US-ASCII");
  HttpParams params=new BasicHttpParams();
  SessionInputBuffer inbuf=new SessionInputBufferImpl(1024,256,params);
  HttpTransportMetricsImpl metrics=new HttpTransportMetricsImpl();
  LengthDelimitedDecoder decoder=new LengthDelimitedDecoder(channel,inbuf,metrics,36);
  int i=inbuf.fill(channel);
  Assert.assertEquals(7,i);
  createTempFile();
  RandomAccessFile testfile=new RandomAccessFile(this.tmpfile,"rw");
  try {
    FileChannel fchannel=testfile.getChannel();
    long pos=0;
    while (!decoder.isCompleted()) {
      long bytesRead=decoder.transfer(fchannel,pos,10);
      if (bytesRead > 0) {
        pos+=bytesRead;
      }
    }
  }
  finally {
    testfile.close();
  }
  Assert.assertEquals(this.tmpfile.length() - 7,metrics.getBytesTransferred());
  Assert.assertEquals("stuff; more stuff; a lot more stuff!",readFromFile(this.tmpfile));
}
