package org.playorm.nio.test.nottested;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.channels.SocketChannel;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
import junit.framework.TestCase;
import org.playorm.nio.api.channels.TCPChannel;
import org.playorm.nio.api.deprecated.ChannelManager;
import org.playorm.nio.api.deprecated.ChannelService;
import org.playorm.nio.api.deprecated.ChannelServiceFactory;
import org.playorm.nio.api.deprecated.ConnectionCallback;
import org.playorm.nio.api.deprecated.Settings;
import org.playorm.nio.api.handlers.DataListener;
import org.playorm.nio.api.testutil.MockDataHandler;
import org.playorm.nio.api.testutil.MockSSLEngineFactory;
import biz.xsoftware.mock.MockObject;
import biz.xsoftware.mock.MockObjectFactory;
/**
* @author Dean Hiller
*/
public class TryRealConnection extends TestCase {
private static final Logger log = Logger.getLogger(TryRealConnection.class.getName());
private ChannelService chanMgr;
private InetAddress loopBack;
private InetSocketAddress loopBackAddr;
/**
* @param arg0
*/
public TryRealConnection(String arg0) {
super(arg0);
}
protected void setUp() throws Exception {
if(chanMgr == null) {
Map<String, Object> factoryName = new HashMap<String, Object>();
factoryName.put(ChannelServiceFactory.KEY_IMPLEMENTATION_CLASS, ChannelServiceFactory.VAL_SECURE_CHANNEL_MGR);
ChannelServiceFactory secureFactory = ChannelServiceFactory.createFactory(factoryName);
//ChannelManagerFactory secureFactory = ChannelManagerFactory.createFactory(null);
Map<String, Object> p = new HashMap<String, Object>();
p.put(ChannelManager.KEY_ID, "[client]");
chanMgr = secureFactory.createChannelManager(p);
chanMgr.start();
}
loopBack = InetAddress.getByName("192.168.1.100");
loopBackAddr = new InetSocketAddress(loopBack, 0);
}
protected void tearDown() throws Exception {
//mockServer.stop();
}
public void testRealConnection() throws Exception {
MockObject mockConnect = MockObjectFactory.createMock(ConnectionCallback.class);
Settings h = new Settings(new MockSSLEngineFactory(), null);
TCPChannel channel = chanMgr.createTCPChannel("testId", h);
channel.bind(loopBackAddr);
log.fine("aaaaa");
MockObject handler = new MockDataHandler();
channel.registerForReads((DataListener)handler);
// InetAddress host = InetAddress.getByName("shell.sourceforge.net");
InetAddress host = InetAddress.getByName("www.xsoftware.biz");
InetSocketAddress addr = new InetSocketAddress(host, 22);
channel.oldConnect(addr, (ConnectionCallback)mockConnect);
mockConnect.expect("connected");
handler.addIgnore("getBuffer");
//CalledMethod method =
handler.expect("incomingData");
// ByteBuffer b = (ByteBuffer)method.getAllParams()[1];
}
public void testRegisterForReadAfterConnect() {
}
public void testNio() throws Exception {
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false);
Socket s = channel.socket();
s.bind(loopBackAddr);
InetAddress host = InetAddress.getByName("shell.sourceforge.net");
InetSocketAddress addr = new InetSocketAddress(host, 22);
channel.connect(addr);
for(int i = 0; i < 10; i++) {
boolean b = channel.finishConnect();
log.fine("finishConnect["+i+"]="+b);
Thread.sleep(5000);
}
}
}