@Override public Catalog 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 List<String> catalogXMLs = tenantApi.getTenantCatalogs(internalTenantContext); if (catalogXMLs.isEmpty()) { return null; } try { log.info("Loading catalog cache for tenantRecordId='{}'", internalTenantContext.getTenantRecordId()); return callback.loadCatalog(catalogXMLs, tenantRecordId); } catch (final CatalogApiException e) { throw new IllegalStateException(String.format("Failed to de-serialize catalog for tenantRecordId='%s'", internalTenantContext.getTenantRecordId()), e); } }
final InputStream otherTenantInputCatalog = UriAccessor.accessUri(new URI(Resources.getResource("SpyCarBasic.xml").toExternalForm())); final String otherTenantCatalogXML = CharStreams.toString(new InputStreamReader(otherTenantInputCatalog, "UTF-8")); Mockito.when(tenantInternalApi.getTenantCatalogs(Mockito.any(InternalTenantContext.class))).thenAnswer(new Answer<List<String>>() { @Override public List<String> answer(final InvocationOnMock invocation) throws Throwable {
@Override public Catalog 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 List<String> catalogXMLs = tenantApi.getTenantCatalogs(internalTenantContext); if (catalogXMLs.isEmpty()) { return null; } try { log.info("Loading catalog cache for tenantRecordId='{}'", internalTenantContext.getTenantRecordId()); return callback.loadCatalog(catalogXMLs, tenantRecordId); } catch (final CatalogApiException e) { throw new IllegalStateException(String.format("Failed to de-serialize catalog for tenantRecordId='%s'", internalTenantContext.getTenantRecordId()), e); } }
final InputStream otherTenantInputCatalog = UriAccessor.accessUri(new URI(Resources.getResource("SpyCarBasic.xml").toExternalForm())); final String otherTenantCatalogXML = CharStreams.toString(new InputStreamReader(otherTenantInputCatalog, "UTF-8")); Mockito.when(tenantInternalApi.getTenantCatalogs(Mockito.any(InternalTenantContext.class))).thenAnswer(new Answer<List<String>>() { @Override public List<String> answer(final InvocationOnMock invocation) throws Throwable {