示例一 /** * 这个类简单的包装了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;