*/
    public void xxtestQueuedAsynchWrite() throws Exception {
        mockSelect.setDefaultReturnValue("getThread", Thread.currentThread());
        MySelectableChannel channel = new MySelectableChannel((SocketChannel)mockSunsChannel);
        MyKey key = new MyKey(channel);
        mockSunsChannel.setDefaultReturnValue("getSelectableChannel", channel);
        MockObject mockKey = key.getMock();
        mockKey.addIgnore("readyOps");
        mockKey.setDefaultReturnValue("channel", mockSunsChannel);
        mockKey.setDefaultReturnValue("readyOps", SelectionKey.OP_WRITE);    
        //mockSunsChannel.addBehavior("write", new NoReadByteBuffer2());
        //mockSunsChannel.addBehavior("write", new CloneByteBuffer());
        
        String expected = "abc";
        String expected2 = "def";
        mockKey.addReturnValue("interestOps", SelectionKey.OP_WRITE);
        fireSelector(key, expected, expected2, false);

        String[] methodNames = new String[] { "write", "write" };
        CalledMethod[] methods = mockSunsChannel.expect(methodNames);
                
        ByteBuffer actual = (ByteBuffer)methods[0].getAllParams()[0];
        String msg = HELPER.readString(actual, actual.remaining());
        assertEquals(expected, msg);

        ByteBuffer actual2 = (ByteBuffer)methods[1].getAllParams()[0];
        msg = HELPER.readString(actual2, actual2.remaining());
        assertEquals(expected2, msg);
        
        //expect that an unregistration happened
        methodNames = new String[] { "interestOps" , "interestOps"};
        methods = mockKey.expect(methodNames);
        
        //expect that this channel is no longer interested in anything
        int ops = (Integer)methods[1].getAllParams()[0];
        assertEquals(0, ops);
        
        
        //make sure data can flow through as usual...
        runBasic();
    }