/** * Tests that a partition with expired connections should those connections killed off. * * @throws SQLException */ @Test @SuppressWarnings("unchecked") public void testConnectionNotExpiredLifoMode() throws SQLException { LIFOQueue<ConnectionHandle> mockQueue = createNiceMock(LIFOQueue.class); expect(mockConnectionPartition.getAvailableConnections()).andReturn(1); expect(mockConnectionPartition.getFreeConnections()).andReturn(mockQueue).anyTimes(); ConnectionHandle mockConnection = createNiceMock(ConnectionHandle.class); expect(mockQueue.poll()).andReturn(mockConnection).once(); expect(mockConnection.isExpired(anyLong())).andReturn(false).once(); expect(mockExecutor.isShutdown()).andReturn(false).once(); expect(mockConnection.getOriginatingPartition()).andReturn(mockConnectionPartition).anyTimes(); expect(mockQueue.offerLast(mockConnection)).andReturn(false).anyTimes(); mockConnection.internalClose(); replay(mockQueue, mockExecutor, mockConnectionPartition, mockConnection, mockPool); ConnectionMaxAgeThread testClass2 = new ConnectionMaxAgeThread(mockConnectionPartition, mockExecutor, mockPool, 5000, true); testClass2.run(); verify(mockConnection, mockPool); }
/** * Tests various getter/setters. * * @throws IllegalArgumentException * @throws IllegalAccessException * @throws SecurityException * @throws NoSuchFieldException */ @SuppressWarnings("deprecation") @Test public void testSettersGetters() throws IllegalArgumentException, IllegalAccessException, SecurityException, NoSuchFieldException { ConnectionPartition mockPartition = createNiceMock(ConnectionPartition.class); testClass.setOriginatingPartition(mockPartition); assertEquals(mockPartition, testClass.getOriginatingPartition()); testClass.setConnectionLastReset(123); assertEquals(testClass.getConnectionLastReset(), 123); testClass.setConnectionLastUsed(456); assertEquals(testClass.getConnectionLastUsed(), 456); Field field = testClass.getClass().getDeclaredField("possiblyBroken"); field.setAccessible(true); field.setBoolean(testClass, true); assertTrue(testClass.isPossiblyBroken()); Object debugHandle = new Object(); testClass.setDebugHandle(debugHandle); assertEquals(debugHandle, testClass.getDebugHandle()); testClass.setInternalConnection(mockConnection); assertEquals(mockConnection, testClass.getInternalConnection()); assertEquals(mockConnection, testClass.getRawConnection()); field = testClass.getClass().getDeclaredField("logicallyClosed"); field.setAccessible(true); field.setBoolean(testClass, true); assertTrue(testClass.isClosed()); testClass.setLogStatementsEnabled(true); assertTrue(testClass.isLogStatementsEnabled()); assertEquals(testClass.getPool(), mockPool); ArrayList<ReplayLog> testLog = new ArrayList<ReplayLog>(); testClass.setReplayLog(testLog); assertEquals(testClass.getReplayLog(), testLog); testClass.setInReplayMode(true); assertTrue(testClass.isInReplayMode()); testClass.setInReplayMode(false); testClass.threadUsingConnection = Thread.currentThread(); assertEquals(Thread.currentThread(), testClass.getThreadUsingConnection()); }