@Override public Object compute(final Long key, final CacheLoaderArgument cacheLoaderArgument) { final Long tenantRecordId = key; final InternalTenantContext internalTenantContext = new InternalTenantContext(tenantRecordId); if (cacheLoaderArgument.getArgs() == null || !(cacheLoaderArgument.getArgs()[0] instanceof LoaderCallback)) { throw new IllegalArgumentException("Missing LoaderCallback from the arguments"); } final LoaderCallback callback = (LoaderCallback) cacheLoaderArgument.getArgs()[0]; final String overdueXML = tenantApi.getTenantOverdueConfig(internalTenantContext); if (overdueXML == null) { return EMPTY_VALUE_PLACEHOLDER; } try { log.info("Loading overdue cache for tenant " + internalTenantContext.getTenantRecordId()); return callback.loadOverdueConfig(overdueXML); } catch (final OverdueApiException e) { throw new IllegalStateException(String.format("Failed to de-serialize overdue config for tenant %s : %s", internalTenantContext.getTenantRecordId(), e.getMessage()), e); } }
final InputStream otherTenantInputOverdueConfig = UriAccessor.accessUri(new URI(Resources.getResource("OverdueConfig.xml").toExternalForm())); final String otherTenantOverdueConfigXML = CharStreams.toString(new InputStreamReader(otherTenantInputOverdueConfig, "UTF-8")); Mockito.when(tenantInternalApi.getTenantOverdueConfig(Mockito.any(InternalTenantContext.class))).thenAnswer(new Answer<String>() { @Override public String answer(final InvocationOnMock invocation) throws Throwable {
@Override public Object compute(final Long key, final CacheLoaderArgument cacheLoaderArgument) { final Long tenantRecordId = key; final InternalTenantContext internalTenantContext = new InternalTenantContext(tenantRecordId); if (cacheLoaderArgument.getArgs() == null || !(cacheLoaderArgument.getArgs()[0] instanceof LoaderCallback)) { throw new IllegalArgumentException("Missing LoaderCallback from the arguments"); } final LoaderCallback callback = (LoaderCallback) cacheLoaderArgument.getArgs()[0]; final String overdueXML = tenantApi.getTenantOverdueConfig(internalTenantContext); if (overdueXML == null) { return EMPTY_VALUE_PLACEHOLDER; } try { log.info("Loading overdue cache for tenant " + internalTenantContext.getTenantRecordId()); return callback.loadOverdueConfig(overdueXML); } catch (final OverdueApiException e) { throw new IllegalStateException(String.format("Failed to de-serialize overdue config for tenant %s : %s", internalTenantContext.getTenantRecordId(), e.getMessage()), e); } }