### Question:
TempPasswordCachingProtocolManager extends IRODSProtocolManager { @Override public IRODSMidLevelProtocol getIRODSProtocol(final IRODSAccount irodsAccount, final PipelineConfiguration pipelineConfiguration, final IRODSSession irodsSession) throws JargonException { try { IRODSMidLevelProtocol command = objectPool.borrowObject(); command.setIrodsProtocolManager(this); return command; } catch (Exception e) { throw new JargonException(e); } } TempPasswordCachingProtocolManager(final IRODSAccount irodsAccount, final IRODSSession irodsSession,
			final IRODSProtocolManager baseProtocolManager); @Override IRODSMidLevelProtocol getIRODSProtocol(final IRODSAccount irodsAccount,
			final PipelineConfiguration pipelineConfiguration, final IRODSSession irodsSession); @Override void destroy(); @Override void initialize(); IRODSAccount getIrodsAccount(); @Override void returnIRODSProtocol(final IRODSMidLevelProtocol abstractIRODSMidLevelProtocol);  }### Answer:
@Test public void testGetIRODSProtocol() throws Exception { IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); TempPasswordCachingProtocolManager manager = new TempPasswordCachingProtocolManager(irodsAccount, irodsFileSystem.getIrodsSession(), irodsFileSystem.getIrodsProtocolManager()); IRODSSession irodsSession = IRODSSession.instance(manager); Assert.assertNotNull("null manager returned", manager); IRODSMidLevelProtocol commands = manager.getIRODSProtocol(irodsAccount, irodsSession.buildPipelineConfigurationBasedOnJargonProperties(), irodsFileSystem.getIrodsSession()); Assert.assertTrue("commands not connected", commands.isConnected()); manager.returnIRODSProtocol(commands); manager.destroy(); commands.disconnect(); }