@Test public void testConnectionFailure() { FakeConnectionProvider connector = new FakeConnectionProvider(); FakeConnectionManager mgr = new FakeConnectionManager(3, 3, connector); FakeWaiter waiter = new FakeWaiter(); mgr.getConnection(waiter); FakeConnection conn = connector.assertRequest(); Exception expected = new Exception(); conn.fail(expected); assertWaitUntil(waiter::isComplete); waiter.assertFailure(expected); assertTrue(waiter.isFailure()); assertWaitUntil(mgr::closed); }
@Test public void testConnectionFailure() { FakeConnectionProvider connector = new FakeConnectionProvider(); FakeConnectionManager mgr = new FakeConnectionManager(3, 3, connector); FakeWaiter waiter = new FakeWaiter(); mgr.getConnection(waiter); FakeConnection conn = connector.assertRequest(); Exception expected = new Exception(); conn.fail(expected); assertWaitUntil(waiter::isComplete); waiter.assertFailure(expected); assertTrue(waiter.isFailure()); assertWaitUntil(mgr::closed); }
private void checkQueueMaxSize(int queueMaxSize, int poolMaxSize) { FakeConnectionProvider connector = new FakeConnectionProvider(); FakeConnectionManager mgr = new FakeConnectionManager(queueMaxSize, poolMaxSize, connector); FakeWaiter[] waiters = new FakeWaiter[poolMaxSize + queueMaxSize]; for (int i = 0;i < poolMaxSize + queueMaxSize;i++) { FakeWaiter waiter = new FakeWaiter(); waiters[i] = waiter; mgr.getConnection(waiter); } FakeWaiter waiter = new FakeWaiter(); mgr.getConnection(waiter); assertWaitUntil(waiter::isFailure); for (int i = 0;i < poolMaxSize + queueMaxSize;i++) { assertFalse("Was not expecting connection no=" + i + " to be failed", waiters[i].isFailure()); } }
@Test public void testConnectPoolEmptyWaiterCancelledAfterConnectRequest() { FakeConnectionProvider connector = new FakeConnectionProvider(); FakeConnectionManager mgr = new FakeConnectionManager(3, 3, connector); FakeWaiter waiter = new FakeWaiter(); mgr.getConnection(waiter); FakeConnection conn = connector.assertRequest(); waiter.cancel(); conn.connect(); assertWaitUntil(waiter::isComplete); assertFalse(waiter.isSuccess()); assertFalse(waiter.isFailure()); assertFalse(mgr.contains(conn)); }
private void checkQueueMaxSize(int queueMaxSize, int poolMaxSize) { FakeConnectionProvider connector = new FakeConnectionProvider(); FakeConnectionManager mgr = new FakeConnectionManager(queueMaxSize, poolMaxSize, connector); FakeWaiter[] waiters = new FakeWaiter[poolMaxSize + queueMaxSize]; for (int i = 0;i < poolMaxSize + queueMaxSize;i++) { FakeWaiter waiter = new FakeWaiter(); waiters[i] = waiter; mgr.getConnection(waiter); } FakeWaiter waiter = new FakeWaiter(); mgr.getConnection(waiter); assertWaitUntil(waiter::isFailure); for (int i = 0;i < poolMaxSize + queueMaxSize;i++) { assertFalse("Was not expecting connection no=" + i + " to be failed", waiters[i].isFailure()); } }
@Test public void testConnectPoolEmptyWaiterCancelledAfterConnectRequest() { FakeConnectionProvider connector = new FakeConnectionProvider(); FakeConnectionManager mgr = new FakeConnectionManager(3, 3, connector); FakeWaiter waiter = new FakeWaiter(); mgr.getConnection(waiter); FakeConnection conn = connector.assertRequest(); waiter.cancel(); conn.connect(); assertWaitUntil(waiter::isComplete); assertFalse(waiter.isSuccess()); assertFalse(waiter.isFailure()); assertFalse(mgr.contains(conn)); }