Tengo un método en una de las clases en mi base de código que por mi vida, no puedo entrar con mis pruebas junit. Básicamente esta clase se llama cuando solicito una conexión de base de datos, si se devuelve una conexión en punto muerto, se establece una nueva conexiónJava - Code Coverage
Aquí es el fragmento de la mthod en mi clase (recortada para este propósito)
public class TCSOracleDataSourceWrapper extends OracleDataSource {
private static final int STALE_CONNECTION_EX_CODE = 17143;
private OracleConnectionCacheManager cacheManager;
private String cacheName;
/** Local log variable **/
private final Log logger = LogFactory.getLog(getClass());
/**
* Class constructor
* @throws SQLException
*/
public TCSOracleDataSourceWrapper() throws SQLException {
super();
}
private static final long serialVersionUID = 1L;
@Override
/**
* Get a connection but if the connection is stale then refresh all DB connections
*
*/
public final Connection getConnection() throws SQLException {
logger.debug("Retrieving a database connection from the pool");
Connection connection = null;
try{
connection = super.getConnection();
}
catch(SQLException e)
{
if(e.getErrorCode() == STALE_CONNECTION_EX_CODE)
{
logger.error("Stale Oracle connection found in the Connection Pool. Refreshing invalid DB connections.");
//refresh invalid connections
cacheManager.refreshCache(cacheName, OracleConnectionCacheManager.REFRESH_INVALID_CONNECTIONS);
//now try to get the connection again
connection = super.getConnection();
}
else
{
throw e;
}
}
return connection;
}}
¿Alguna idea de cómo puedo garantizar que mis pruebas junit ejecuten la instrucción if? actualmente estoy usando EasyMock y Powermock pero no puedo encontrar una manera de entrar en esto si DECLARACIÓN uso de estas herramientas
Toda ayuda es muy apreciada
Gracias Damien