import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelPromise;
import io.netty.channel.DefaultChannelPromise;
+import io.netty.channel.EventLoop;
import java.io.IOException;
import java.net.SocketAddress;
import org.apache.sshd.ClientChannel;
private SocketAddress remoteAddress;
@Mock
private SocketAddress localAddress;
+ @Mock
+ private EventLoop eventLoop;
private AsyncSshHandler asyncSshHandler;
stubAuth();
stubSshClient();
stubChannel();
+ stubEventLoop();
stubCtx();
stubRemoteAddress();
doReturn("channel").when(channel).toString();
}
+ private void stubEventLoop() {
+ doReturn(eventLoop).when(channel).eventLoop();
+ doReturn(Boolean.TRUE).when(eventLoop).inEventLoop();
+ }
+
private void stubSshClient() {
doNothing().when(sshClient).start();
final ConnectFuture connectFuture = mock(ConnectFuture.class);
@Override
public void onSuccess(final SshFutureListener<IoReadFuture> result) {
doReturn(new IllegalStateException()).when(mockedReadFuture).getException();
- doReturn(mockedReadFuture).when(mockedReadFuture).removeListener(Matchers.<SshFutureListener<IoReadFuture>>any());
+ doReturn(mockedReadFuture).when(mockedReadFuture)
+ .removeListener(Matchers.<SshFutureListener<IoReadFuture>>any());
doReturn(true).when(asyncOut).isClosing();
doReturn(true).when(asyncOut).isClosed();
result.operationComplete(mockedReadFuture);
@Override
public void onSuccess(final SshFutureListener<IoReadFuture> result) {
doReturn(new IllegalStateException()).when(mockedReadFuture).getException();
- doReturn(mockedReadFuture).when(mockedReadFuture).removeListener(Matchers.<SshFutureListener<IoReadFuture>>any());
+ doReturn(mockedReadFuture).when(mockedReadFuture)
+ .removeListener(Matchers.<SshFutureListener<IoReadFuture>>any());
result.operationComplete(mockedReadFuture);
}
});
final ChannelPromise firstWritePromise = getMockedPromise();
- // intercept listener for first write, so we can invoke successful write later thus simulate pending of the first write
- final ListenableFuture<SshFutureListener<IoWriteFuture>> firstWriteListenerFuture = stubAddListener(ioWriteFuture);
+ // intercept listener for first write,
+ // so we can invoke successful write later thus simulate pending of the first write
+ final ListenableFuture<SshFutureListener<IoWriteFuture>> firstWriteListenerFuture =
+ stubAddListener(ioWriteFuture);
asyncSshHandler.write(ctx, Unpooled.copiedBuffer(new byte[]{0,1,2,3,4,5}), firstWritePromise);
final SshFutureListener<IoWriteFuture> firstWriteListener = firstWriteListenerFuture.get();
- // intercept second listener, this is the listener for pending write for the pending write to know when pending state ended
+ // intercept second listener,
+ // this is the listener for pending write for the pending write to know when pending state ended
final ListenableFuture<SshFutureListener<IoWriteFuture>> pendingListener = stubAddListener(ioWriteFuture);
final ChannelPromise secondWritePromise = getMockedPromise();
final ChannelPromise firstWritePromise = getMockedPromise();
- // intercept listener for first write, so we can invoke successful write later thus simulate pending of the first write
- final ListenableFuture<SshFutureListener<IoWriteFuture>> firstWriteListenerFuture = stubAddListener(ioWriteFuture);
+ // intercept listener for first write,
+ // so we can invoke successful write later thus simulate pending of the first write
+ final ListenableFuture<SshFutureListener<IoWriteFuture>> firstWriteListenerFuture =
+ stubAddListener(ioWriteFuture);
asyncSshHandler.write(ctx, Unpooled.copiedBuffer(new byte[]{0,1,2,3,4,5}), firstWritePromise);
final ChannelPromise secondWritePromise = getMockedPromise();
return sshSession;
}
- private ChannelSubsystem getMockedSubsystemChannel(final IoInputStream asyncOut, final IoOutputStream asyncIn) throws IOException {
+ private ChannelSubsystem getMockedSubsystemChannel(final IoInputStream asyncOut,
+ final IoOutputStream asyncIn) throws IOException {
final ChannelSubsystem subsystemChannel = mock(ChannelSubsystem.class);
doReturn("subsystemChannel").when(subsystemChannel).toString();
return spy(new DefaultChannelPromise(channel));
}
- private static abstract class SuccessFutureListener<T extends SshFuture<T>> implements FutureCallback<SshFutureListener<T>> {
+ private abstract static class SuccessFutureListener<T extends SshFuture<T>>
+ implements FutureCallback<SshFutureListener<T>> {
@Override
- public abstract void onSuccess(final SshFutureListener<T> result);
+ public abstract void onSuccess(SshFutureListener<T> result);
@Override
- public void onFailure(final Throwable t) {
- throw new RuntimeException(t);
+ public void onFailure(final Throwable throwable) {
+ throw new RuntimeException(throwable);
}
}
}