예제 #1
0
  @Test
  public void testClose() throws Exception {
    ObjectPool<Object> pool = new TestObjectPool();

    pool.close();
    pool.close(); // should not error as of Pool 2.0.
  }
예제 #2
0
 @Test
 public void testBaseAddObject() throws Exception {
   try {
     _pool = makeEmptyPool(3);
   } catch (UnsupportedOperationException e) {
     return; // skip this test if unsupported
   }
   try {
     assertEquals(0, _pool.getNumIdle());
     assertEquals(0, _pool.getNumActive());
     _pool.addObject();
     assertEquals(1, _pool.getNumIdle());
     assertEquals(0, _pool.getNumActive());
     String obj = _pool.borrowObject();
     assertEquals(getNthObject(0), obj);
     assertEquals(0, _pool.getNumIdle());
     assertEquals(1, _pool.getNumActive());
     _pool.returnObject(obj);
     assertEquals(1, _pool.getNumIdle());
     assertEquals(0, _pool.getNumActive());
   } catch (UnsupportedOperationException e) {
     return; // skip this test if one of those calls is unsupported
   } finally {
     _pool.close();
   }
 }
예제 #3
0
 @Test
 public void testBaseBorrow() throws Exception {
   try {
     _pool = makeEmptyPool(3);
   } catch (UnsupportedOperationException e) {
     return; // skip this test if unsupported
   }
   assertEquals(getNthObject(0), _pool.borrowObject());
   assertEquals(getNthObject(1), _pool.borrowObject());
   assertEquals(getNthObject(2), _pool.borrowObject());
   _pool.close();
 }
예제 #4
0
  @Test
  public void testBaseClosePool() throws Exception {
    try {
      _pool = makeEmptyPool(3);
    } catch (UnsupportedOperationException e) {
      return; // skip this test if unsupported
    }
    String obj = _pool.borrowObject();
    _pool.returnObject(obj);

    _pool.close();
    try {
      _pool.borrowObject();
      fail("Expected IllegalStateException");
    } catch (IllegalStateException e) {
      // expected
    }
  }
예제 #5
0
 @Test
 public void testBaseInvalidateObject() throws Exception {
   try {
     _pool = makeEmptyPool(3);
   } catch (UnsupportedOperationException e) {
     return; // skip this test if unsupported
   }
   assertEquals(0, _pool.getNumActive());
   assertEquals(0, _pool.getNumIdle());
   String obj0 = _pool.borrowObject();
   String obj1 = _pool.borrowObject();
   assertEquals(2, _pool.getNumActive());
   assertEquals(0, _pool.getNumIdle());
   _pool.invalidateObject(obj0);
   assertEquals(1, _pool.getNumActive());
   assertEquals(0, _pool.getNumIdle());
   _pool.invalidateObject(obj1);
   assertEquals(0, _pool.getNumActive());
   assertEquals(0, _pool.getNumIdle());
   _pool.close();
 }
예제 #6
0
  @Test
  public void testBaseBorrowReturn() throws Exception {
    try {
      _pool = makeEmptyPool(3);
    } catch (UnsupportedOperationException e) {
      return; // skip this test if unsupported
    }
    String obj0 = _pool.borrowObject();
    assertEquals(getNthObject(0), obj0);
    String obj1 = _pool.borrowObject();
    assertEquals(getNthObject(1), obj1);
    String obj2 = _pool.borrowObject();
    assertEquals(getNthObject(2), obj2);
    _pool.returnObject(obj2);
    obj2 = _pool.borrowObject();
    assertEquals(getNthObject(2), obj2);
    _pool.returnObject(obj1);
    obj1 = _pool.borrowObject();
    assertEquals(getNthObject(1), obj1);
    _pool.returnObject(obj0);
    _pool.returnObject(obj2);
    obj2 = _pool.borrowObject();
    if (isLifo()) {
      assertEquals(getNthObject(2), obj2);
    }
    if (isFifo()) {
      assertEquals(getNthObject(0), obj2);
    }

    obj0 = _pool.borrowObject();
    if (isLifo()) {
      assertEquals(getNthObject(0), obj0);
    }
    if (isFifo()) {
      assertEquals(getNthObject(2), obj0);
    }
    _pool.close();
  }