Author: sandymac Date: Thu Mar 16 23:49:24 2006 New Revision: 386562 URL: http://svn.apache.org/viewcvs?rev=386562&view=rev Log: Impoves unit test code coverage for GenericObjectPool.
Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java Modified: jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java?rev=386562&r1=386561&r2=386562&view=diff ============================================================================== --- jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java (original) +++ jakarta/commons/proper/pool/trunk/src/test/org/apache/commons/pool/impl/TestGenericObjectPool.java Thu Mar 16 23:49:24 2006 @@ -22,6 +22,7 @@ import org.apache.commons.pool.ObjectPool; import org.apache.commons.pool.PoolableObjectFactory; import org.apache.commons.pool.TestObjectPool; +import org.apache.commons.pool.PoolUtils; import java.util.NoSuchElementException; @@ -119,6 +120,31 @@ pool.close(); } + public void testEvict() throws Exception { + // yea this is hairy but it tests all the code paths in GOP.evict() + final SimpleFactory factory = new SimpleFactory(); + final GenericObjectPool pool = new GenericObjectPool(factory); + pool.setSoftMinEvictableIdleTimeMillis(10); + pool.setMinIdle(2); + pool.setTestWhileIdle(true); + PoolUtils.prefill(pool, 5); + pool.evict(); + factory.setEvenValid(false); + factory.setOddValid(false); + factory.setThrowExceptionOnActivate(true); + pool.evict(); + PoolUtils.prefill(pool, 5); + factory.setThrowExceptionOnActivate(false); + factory.setThrowExceptionOnPassivate(true); + pool.evict(); + factory.setThrowExceptionOnPassivate(false); + factory.setEvenValid(true); + factory.setOddValid(true); + Thread.sleep(125); + pool.evict(); + assertEquals(2, pool.getNumIdle()); + } + public void testExceptionOnPassivateDuringReturn() throws Exception { SimpleFactory factory = new SimpleFactory(); GenericObjectPool pool = new GenericObjectPool(factory); @@ -304,6 +330,10 @@ assertEquals(11235L,pool.getTimeBetweenEvictionRunsMillis()); } { + pool.setSoftMinEvictableIdleTimeMillis(12135L); + assertEquals(12135L,pool.getSoftMinEvictableIdleTimeMillis()); + } + { pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK); assertEquals(GenericObjectPool.WHEN_EXHAUSTED_BLOCK,pool.getWhenExhaustedAction()); pool.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_FAIL); @@ -811,6 +841,15 @@ pool.returnObject(obj); assertEquals("should be one idle", 1, pool.getNumIdle()); assertEquals("should be zero active", 0, pool.getNumActive()); + + ObjectPool op = new GenericObjectPool(); + try { + op.addObject(); + fail("Expected IllegalStateException when there is no factory."); + } catch (IllegalStateException ise) { + //expected + } + op.close(); } private GenericObjectPool pool = null; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]