package com.alibaba.doris.client.net;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import com.alibaba.doris.common.data.KeyFactory;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class ConnectionFactoryTest extends TestCase {
public void testGetInstence() {
ConnectionFactory factory = ConnectionFactory.getInstance();
assertNotNull(factory);
}
public void testGetConnection() {
ConnectionFactory factory = ConnectionFactory.getInstance();
InetSocketAddress address = new InetSocketAddress("10.20.153.84", 6004);
Connection connection = factory.getConnection(address);
assertNotNull(connection);
connection.open();
assertTrue(connection.isConnected());
connection.close();
}
public void testBatchConnections() {
ConnectionFactory factory = ConnectionFactory.getInstance();
List<Connection> conList = new ArrayList<Connection>();
for (int i = 0; i < 100; i++) {
InetSocketAddress address = new InetSocketAddress("10.20.153.84", 6004);
Connection connection = factory.getConnection(address);
assertNotNull(connection);
connection.open();
conList.add(connection);
}
for (Connection con : conList) {
con.close();
}
}
public void testWrite() {
ConnectionFactory factory = ConnectionFactory.getInstance();
InetSocketAddress address = new InetSocketAddress("10.20.153.84", 6004);
Connection connection = factory.getConnection(address);
connection.open();
connection.get(KeyFactory.createKey(1, "abc"));
connection.close();
}
public void testBatchOpenAndCloseConnections() {
ConnectionFactory factory = ConnectionFactory.getInstance();
Connection before = null;
for (int i = 0; i < 1000000; i++) {
InetSocketAddress address = new InetSocketAddress("10.20.153.84", 6004);
Connection connection = factory.getConnection(address);
assertNotNull(connection);
connection.open();
if (null != before) {
before.close();
}
before = connection;
}
}
}