@Test(timeout = 20000) public void testPoolUseNoFailures() throws ObjectCreationException, ObjectBorrowException, InterruptedException, TimeoutException, ObjectReturnException, ObjectDisposeException, ExecutionException { RecyclingSupplier<ExpensiveTestObject> pool = new RecyclingSupplierBuilder(10, new ExpensiveTestObjectFactory(1000000, 1000000, 1, 5)).build(); runTest(pool, 0, 10000); pool.dispose(); }
@Test(timeout = 16000) public void testPoolUseNoFailuresStarvation() throws ObjectCreationException, ObjectBorrowException, InterruptedException, TimeoutException, ObjectReturnException, ObjectDisposeException, ExecutionException { RecyclingSupplier<ExpensiveTestObject> pool = new RecyclingSupplierBuilder(1, new ExpensiveTestObjectFactory(1000000, 1000000, 1, 5)).build(); runTest(pool, 0, 15000); pool.dispose(); }
@Test(timeout = 20000) public void testPoolUseWithMaintenance() throws ObjectCreationException, ObjectBorrowException, InterruptedException, TimeoutException, ObjectReturnException, ObjectDisposeException, ExecutionException { final RecyclingSupplier<ExpensiveTestObject> pool = new RecyclingSupplierBuilder<>(10, new ExpensiveTestObjectFactory()) .withMaintenance(DefaultScheduler.INSTANCE, 10, true).build(); runTest(pool, 5, 20000); try { pool.dispose(); } catch (ObjectDisposeException ex) { Throwables.writeTo(ex, System.err, Throwables.PackageDetail.SHORT); } }
@Test(timeout = 20000) public void testPoolUse() throws ObjectCreationException, ObjectBorrowException, InterruptedException, TimeoutException, ObjectReturnException, ObjectDisposeException, ExecutionException { final RecyclingSupplier<ExpensiveTestObject> pool = new RecyclingSupplierBuilder(10, new ExpensiveTestObjectFactory()).build(); runTest(pool, 0, 10000); try { ExpensiveTestObject.setFailAll(true); LogAssert expect = TestLoggers.sys().expect("", Level.WARN, LogMatchers.hasFormat("Cannot dispose object {}")); pool.dispose(); expect.assertObservation(); } finally { ExpensiveTestObject.setFailAll(false); } }