@Test
public void testFreeCalled() throws Exception {

    final CountDownLatch free = new CountDownLatch(1);
    final ReferenceCounted holder = new AbstractReferenceCounted() {
        @Override
        protected void deallocate() {
            free.countDown();
        }
        @Override
        public ReferenceCounted touch(Object hint) {
            return this;
        }
    };
    StringInboundHandler handler = new StringInboundHandler();
    setUp(handler);
    peer.writeAndFlush(holder).sync();
    assertTrue(free.await(10, TimeUnit.SECONDS));
    assertTrue(handler.called);
}