@Test
 public void testDrainTo_none() throws Exception {
   Message m = new Message();
   byte[] bytes = IoUtils.toByteArray(marshaller.stream(m));
   InputStream is = marshaller.stream(m);
   byte[] unused = IoUtils.toByteArray(is);
   Drainable d = (Drainable) is;
   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   assertEquals(0, d.drainTo(baos));
   assertArrayEquals(new byte[0], baos.toByteArray());
   assertEquals(0, is.available());
 }
 @Test
 public void testDrainTo_all() throws Exception {
   Message m = new Message();
   byte[] bytes = IoUtils.toByteArray(marshaller.stream(m));
   InputStream is = marshaller.stream(m);
   Drainable d = (Drainable) is;
   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   int drained = d.drainTo(baos);
   assertEquals(baos.size(), drained);
   assertArrayEquals(bytes, baos.toByteArray());
   assertEquals(0, is.available());
 }