示例一 /** * 這個類簡單的包裝了oracle對數據連接緩沖池的實現。 * */ public class DefaultConnectionProxy extends ConnectionProxy {
private static final String name = "Default Connection Proxy"; private static final String description = "這個類簡單的包裝了oracle對數據連接緩沖池的實現。"; private static final String author = "Ion-Global.com"; private static final int major_version = 0; private static final int minor_version = 9; private static final boolean pooled = true;
// Test Code Begin... /* 為了能夠了解對象的狀態變化,因此需要把表征對象內部狀態變化的部分私有變量提供公共的訪問接口 (或者提供讓同一個類包的訪問接口),以便使測試單元可以有效地判定對象的狀態轉變, 在本示例中對包裝的OracleConnectionCacheImpl對象提供訪問接口。 */ OracleConnectionCacheImpl getConnectionCache() { if (connectionBroker == null) { throw new IllegalStateException("You need start the server first."); }
/** 對示例一中的對象進行數據庫連接釋放的測試,看看連接釋放后,連接池的 狀態是否按照既定的策略進行變化。由于assert方法拋出的是error對象,因此盡可 能把assert方法放置到方法的最后集體進行測試,這樣在方法內打開的 資源,才能有效的被正確關閉。 */ public void testConnectionClose() { int minConnections = cacheImpl.getMinLimit(); int cacheSize = 0; int activeSize = 0; int cacheSizeAfter = 0; int activeSizeAfter = 0;