領測軟件測試網
*
*/
public class DefaultConnectionProxyTest extends TestCase {
private DefaultConnectionProxy conProxy = null;
private
OracleConnectionCacheImpl cacheImpl = null;
private Connection con = null;
/** 設置
測試的fixture,建立必要的測試起始環境。
*/
protected void setUp() {
conProxy = new DefaultConnectionProxy();
conProxy.start();
cacheImpl = conProxy.getConnectionCache();
}
/** 對示例一中的對象進行服務啟動后的狀態測試,檢查是否在服務啟動后,
連接池的參數設置是否正確。
*/
public void testConnectionProxyStart() {
int minConnections = 0;
int maxConnections = 0;
assertNotNull(cacheImpl);
try{
minConnections = Integer.parseInt(PropertyManager.getProperty
("DefaultConnectionProxy.minConnections"));
maxConnections = Integer.parseInt(PropertyManager.getProperty
("DefaultConnectionProxy.maxConnections"));
} catch (Exception e) {
// ignore the exception
}
assertEquals(cacheImpl.getMinLimit(), minConnections);
assertEquals(cacheImpl.getMaxLimit(), maxConnections);
assertEquals(cacheImpl.getCacheSize(), minConnections);
}
/** 對示例一中的對象進行獲取
數據庫連接的測試,看看是否可以獲取有效的數據庫連接,
并且看看獲取連接后,連接池的狀態是否按照既定的策略進行變化。由于assert方法拋出的是
error對象,因此盡可能把assert方法放置到方法的最后集體進行測試,這樣在方法內打開的
資源,才能有效的被正確關閉。
*/
public void testGetConnection() {
int cacheSize = cacheImpl.getCacheSize();
int activeSize = cacheImpl.getActiveSize();
int cacheSizeAfter = 0;
int activeSizeAfter = 0;
con = conProxy.getConnection();
if (con != null) {
activeSizeAfter = cacheImpl.getActiveSize();
cacheSizeAfter = cacheImpl.getCacheSize();
try{
con.close();
} catch (
SQLException e) {
}
} else {
assertNotNull(con);
}
/*如果連接池中的實際使用連接數小于緩存連接數,檢查獲取的新的數據連接是否
從緩存中獲取,反之連接池是否建立新的連接
文章來源于領測軟件測試網 http://www.kjueaiud.com/