@Test
void shouldHandlePartialWrites() throws Exception
{
FileChannel mockChannel = mock(FileChannel.class);
when(mockChannel.write( any(ByteBuffer.class), anyLong() )).thenReturn( 4 );
ByteBuffer buffer = ByteBuffer.wrap( "Hello, world!".getBytes( StandardCharsets.UTF_8 ) );
StoreFileChannel channel = new StoreFileChannel( mockChannel );
channel.writeAll( buffer, 20 );
verify( mockChannel ).write( buffer, 20 );
verify( mockChannel ).write( buffer, 24 );
verify( mockChannel ).write( buffer, 28 );
verify( mockChannel ).write( buffer, 32 );
verifyNoMoreInteractions( mockChannel );
}
}