### Question:
ApiPluginExecutorImpl extends IRODSGenericAO { public OutputType callPluggableApi(int apiNumber, InputType input) throws JargonException { log.info("callPluggableApi())"); if (apiNumber <= 0) { throw new IllegalArgumentException("invalid api number"); } if (input == null) { throw new IllegalArgumentException("null input"); } log.info("apiNumber:{}", apiNumber); log.info("input:{}", input); try { String jsonInput = mapper.writeValueAsString(input); log.debug("jsonInput:{}", jsonInput); return (OutputType) new Object(); } catch (JsonProcessingException e) { log.error("Invalid json", e); throw new JargonException("invalid json", e); } } ApiPluginExecutorImpl(IRODSSession irodsSession, IRODSAccount irodsAccount); OutputType callPluggableApi(int apiNumber, InputType input);  }### Answer:
@Test public void testCallPluggableApi() throws JargonException { IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAdminAccountFromTestProperties(testingProperties); IRODSSession irodsSession = Mockito.mock(IRODSSession.class); JargonProperties properties = irodsFileSystem.getJargonProperties(); Mockito.when(irodsSession.getJargonProperties()).thenReturn(properties); ApiPluginExecutorImpl<TestPluggableInput, Object> impl = new ApiPluginExecutorImpl<>(irodsSession, irodsAccount); TestPluggableInput input = new TestPluggableInput(); Object actual = impl.callPluggableApi(1, input); Assert.assertNotNull("null output", actual); }