### Question:
ConnectionCreatingPoolableObjectFactory implements PooledObjectFactory<IRODSMidLevelProtocol> { public ConnectionCreatingPoolableObjectFactory(final IRODSAccount cachedIRODSAccount, final IRODSSession irodsSession, final IRODSProtocolManager irodsProtocolManager) { if (cachedIRODSAccount == null) { throw new IllegalArgumentException("null cachedIRODSAccount"); } if (irodsSession == null) { throw new IllegalArgumentException("null irodsSession"); } if (irodsProtocolManager == null) { throw new IllegalArgumentException("null irodsProtocolManager"); } this.cachedIRODSAccount = cachedIRODSAccount; log.info("caching iRODS account:{}", cachedIRODSAccount); this.irodsProtocolManager = irodsProtocolManager; this.irodsSession = irodsSession; pipelineConfiguration = irodsSession.buildPipelineConfigurationBasedOnJargonProperties(); } ConnectionCreatingPoolableObjectFactory(final IRODSAccount cachedIRODSAccount,
			final IRODSSession irodsSession, final IRODSProtocolManager irodsProtocolManager); @Override void activateObject(PooledObject<IRODSMidLevelProtocol> objectToActivate); @Override void destroyObject(PooledObject<IRODSMidLevelProtocol> objectToDestroy); @Override PooledObject<IRODSMidLevelProtocol> makeObject(); @Override void passivateObject(PooledObject<IRODSMidLevelProtocol> objectToPassivate); @Override boolean validateObject(PooledObject<IRODSMidLevelProtocol> objectToValidate);  }### Answer:
@Test public void testConnectionCreatingPoolableObjectFactory() { IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); ConnectionCreatingPoolableObjectFactory factory = new ConnectionCreatingPoolableObjectFactory(irodsAccount, irodsFileSystem.getIrodsSession(), irodsFileSystem.getIrodsProtocolManager()); Assert.assertNotNull("null factory", factory); }