use of java.nio.channels.AsynchronousByteChannel in project j2objc by google.
the class ChannelsTest method testInputStreamAsynchronousByteChannel.
public void testInputStreamAsynchronousByteChannel() throws Exception {
AsynchronousByteChannel abc = mock(AsynchronousByteChannel.class);
InputStream is = Channels.newInputStream(abc);
Future<Integer> result = mock(Future.class);
ArgumentCaptor<ByteBuffer> bbCaptor = ArgumentCaptor.forClass(ByteBuffer.class);
final byte[] bytesRead = new byte[10];
when(abc.read(bbCaptor.capture())).thenReturn(result);
when(result.get()).thenAnswer(new Answer<Integer>() {
public Integer answer(InvocationOnMock invocation) {
ByteBuffer bb = bbCaptor.getValue();
assertEquals(bytesRead.length, bb.remaining());
// Write '7' bytes
bb.put(new byte[] { 0, 1, 2, 3, 4, 5, 6 });
return 7;
}
});
assertEquals(7, is.read(bytesRead));
// Only 7 bytes of data should be written into the buffer
byte[] bytesExpected = new byte[] { 0, 1, 2, 3, 4, 5, 6, 0, 0, 0 };
assertTrue(Arrays.equals(bytesExpected, bytesRead));
Mockito.verify(abc).read(isA(ByteBuffer.class));
Mockito.verify(result).get();
}
use of java.nio.channels.AsynchronousByteChannel in project j2objc by google.
the class ChannelsTest method testOutputStreamAsynchronousByteChannel.
public void testOutputStreamAsynchronousByteChannel() throws Exception {
AsynchronousByteChannel abc = mock(AsynchronousByteChannel.class);
OutputStream os = Channels.newOutputStream(abc);
Future<Integer> result = mock(Future.class);
ArgumentCaptor<ByteBuffer> bbCaptor = ArgumentCaptor.forClass(ByteBuffer.class);
final byte[] data = "world".getBytes();
when(abc.write(bbCaptor.capture())).thenReturn(result);
when(result.get()).thenAnswer(new Answer<Integer>() {
public Integer answer(InvocationOnMock invocation) {
ByteBuffer bb = bbCaptor.getValue();
assertEquals(data.length, bb.remaining());
byte[] readData = new byte[data.length];
// Read the whole thing
bb.get(readData);
assertTrue(Arrays.equals(data, readData));
return data.length;
}
});
os.write(data);
Mockito.verify(abc).write(isA(ByteBuffer.class));
Mockito.verify(result).get();
}
use of java.nio.channels.AsynchronousByteChannel in project redisson by redisson.
the class RedissonBinaryStreamTest method testAsyncReadWrite.
@Test
public void testAsyncReadWrite() throws ExecutionException, InterruptedException {
RBinaryStream stream = redisson.getBinaryStream("test");
AsynchronousByteChannel channel = stream.getAsynchronousChannel();
ByteBuffer bb = ByteBuffer.wrap(new byte[] { 1, 2, 3, 4, 5, 6, 7 });
channel.write(bb).get();
AsynchronousByteChannel channel2 = stream.getAsynchronousChannel();
ByteBuffer b = ByteBuffer.allocate(7);
channel2.read(b).get();
b.flip();
assertThat(b).isEqualByComparingTo(bb);
}
Aggregations