package br.com.citframework.integracao;
import java.sql.Connection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import br.com.citframework.util.ReflectionUtils;
/**
* Classe de testes para valida��o do comportamento de {@link ConnectionReadOnlyProvider}
*
* @author bruno.ribeiro - <a href="mailto:bruno.ribeiro@centrait.com.br">bruno.ribeiro@centrait.com.br</a>
* @since 20/08/2014
*
*/
public final class ConnectionReadOnlyProviderTest extends ConnectionProviderAbstractTest {
private final Map<String, Connection> connections = new ConcurrentHashMap<>();
@Before
public void setUp() throws Exception {
ReflectionUtils.setFieldOnStatic(ConnectionReadOnlyProvider.class, "connections", connections);
}
@Test
public void testGetConnectionWithClassURLUserPassword() throws Exception {
final Connection conn = ConnectionReadOnlyProvider.getConnection(EMBEDDED_JAVADB_JDBC_CLASS, EMBEDDED_JAVADB_JDBC_URL, EMBEDDED_JAVADB_JDBC_USER,
EMBEDDED_JAVADB_JDBC_PASSWORD);
Assert.assertNotNull(conn);
}
@Test(expected = IllegalArgumentException.class)
public void testGetConnectionWithoutClass() throws Exception {
final Connection conn = ConnectionReadOnlyProvider.getConnection(EMPTY_STRING, EMBEDDED_JAVADB_JDBC_URL, EMBEDDED_JAVADB_JDBC_USER, EMBEDDED_JAVADB_JDBC_PASSWORD);
Assert.assertNull(conn);
}
@Test(expected = IllegalArgumentException.class)
public void testGetConnectionWithoutURL() throws Exception {
final Connection conn = ConnectionReadOnlyProvider.getConnection(EMBEDDED_JAVADB_JDBC_CLASS, EMPTY_STRING, EMBEDDED_JAVADB_JDBC_USER, EMBEDDED_JAVADB_JDBC_PASSWORD);
Assert.assertNull(conn);
}
@Test(expected = IllegalArgumentException.class)
public void testGetConnectionWithoutUser() throws Exception {
final Connection conn = ConnectionReadOnlyProvider.getConnection(EMBEDDED_JAVADB_JDBC_CLASS, EMBEDDED_JAVADB_JDBC_URL, EMPTY_STRING, EMBEDDED_JAVADB_JDBC_PASSWORD);
Assert.assertNull(conn);
}
@Test(expected = IllegalArgumentException.class)
public void testGetConnectionWithoutPassword() throws Exception {
final Connection conn = ConnectionReadOnlyProvider.getConnection(EMBEDDED_JAVADB_JDBC_CLASS, EMBEDDED_JAVADB_JDBC_URL, EMBEDDED_JAVADB_JDBC_USER, EMPTY_STRING);
Assert.assertNull(conn);
}
@Test
public void testGetConnectionFromJNDI() throws Exception {
final Connection conn = ConnectionReadOnlyProvider.getConnection(JNDI_DATASOURCE);
Assert.assertNotNull(conn);
final Connection connection = ConnectionReadOnlyProvider.getConnection(JNDI_DATASOURCE);
Assert.assertSame(conn, connection);
}
}