package net.i2p.client.streaming.impl;
import java.io.ByteArrayOutputStream;
import java.util.Properties;
import org.junit.Test;
import net.i2p.I2PAppContext;
import net.i2p.client.I2PClientFactory;
import net.i2p.client.I2PSession;
import net.i2p.client.streaming.I2PSocketManager;
import net.i2p.client.streaming.I2PSocketManagerFactory;
import net.i2p.data.Destination;
import net.i2p.util.Log;
/**
* Try to connect to a new nonexistant peer and, of course,
* timeout.
*/
public class ConnectTimeoutIT extends StreamingITBase {
private Log _log;
private I2PSession _client;
private Destination _serverDest;
@Test
public void testNonexistant() throws Exception {
I2PAppContext context = I2PAppContext.getGlobalContext();
_log = context.logManager().getLog(ConnectIT.class);
_log.debug("creating server dest");
_serverDest = I2PClientFactory.createClient().createDestination(new ByteArrayOutputStream());
_log.debug("creating client session");
_client = createSession();
_log.debug("running client");
runClient(context, _client).join();
}
protected Runnable getClient(I2PAppContext ctx, I2PSession session) {
return new ClientRunner(ctx,session);
}
private class ClientRunner extends RunnerBase {
public ClientRunner(I2PAppContext ctx, I2PSession session) {
super(ctx,session);
}
public void run() {
I2PSocketManager mgr = I2PSocketManagerFactory.createManager("localhost", 10001, getProperties());
assertNull(mgr);
}
}
@Override
protected Runnable getServer(I2PAppContext ctx, I2PSession session) {
return null;
}
@Override
protected Properties getProperties() {
Properties p = new Properties();
p.setProperty(I2PSocketManagerFactory.PROP_MANAGER, I2PSocketManagerFull.class.getName());
p.setProperty("tunnels.depthInbound", "0");
p.setProperty(ConnectionOptions.PROP_CONNECT_TIMEOUT, "30000");
//p.setProperty(ConnectionOptions.PROP_CONNECT_DELAY, "10000");
p.setProperty(ConnectionOptions.PROP_CONNECT_DELAY, "0");
return p;
}
}