package org.webpieces.httpfrontend.api;
import java.util.stream.Stream;
import javax.net.ssl.SSLEngine;
import org.webpieces.mock.MethodEnum;
import org.webpieces.mock.MockSuperclass;
import org.webpieces.mock.ParametersPassedIn;
import org.webpieces.nio.api.ChannelManager;
import org.webpieces.nio.api.SSLEngineFactory;
import org.webpieces.nio.api.channels.DatagramChannel;
import org.webpieces.nio.api.channels.TCPChannel;
import org.webpieces.nio.api.channels.TCPServerChannel;
import org.webpieces.nio.api.channels.UDPChannel;
import org.webpieces.nio.api.handlers.ConnectionListener;
import org.webpieces.nio.api.handlers.DatagramListener;
public class MockChannelManager extends MockSuperclass implements ChannelManager {
private static enum Method implements MethodEnum {
CREATE_TCP_SERVER_CHANNEL, CREATE_SSL_SERVER_CHANNEL;
}
@Override
public TCPServerChannel createTCPServerChannel(String id, ConnectionListener connectionListener) {
return (TCPServerChannel) super.calledMethod(Method.CREATE_TCP_SERVER_CHANNEL, id, connectionListener);
}
@Override
public TCPServerChannel createTCPServerChannel(String id, ConnectionListener connectionListener,
SSLEngineFactory factory) {
return (TCPServerChannel) super.calledMethod(Method.CREATE_TCP_SERVER_CHANNEL, id, connectionListener, factory);
}
@Override
public TCPChannel createTCPChannel(String id) {
return null;
}
@Override
public TCPChannel createTCPChannel(String id, SSLEngine engine) {
return null;
}
@Override
public UDPChannel createUDPChannel(String id) {
return null;
}
@Override
public DatagramChannel createDatagramChannel(String id, int bufferSize, DatagramListener listener) {
return null;
}
@Override
public void stop() {
}
public void addTcpSvrChannel(MockTcpServerChannel mockChannel) {
super.addValueToReturn(Method.CREATE_TCP_SERVER_CHANNEL, mockChannel);
}
public ConnectionListener[] fetchTcpConnectionListeners() {
Stream<ParametersPassedIn> calledMethods = super.getCalledMethods(Method.CREATE_TCP_SERVER_CHANNEL);
Stream<ConnectionListener> retVal = calledMethods.map(p -> (ConnectionListener)p.getArgs()[1]);
return retVal.toArray(ConnectionListener[]::new);
}
}