### Question:
ClientCache implements Cache<Client> { @Override public Client get(String clientId) { return clientCache.get(clientId); } ClientCache(
            Function<String, List<Metric>> metricsService,
            ApimAdapterConfig config,
            ConfigurationLoader configurationLoader); void remove(String clientId); List<String> clientIds(); static void updateToUnlimitedUsageWhenNoUsageIsDefined(Client client, String serviceId, Function<String, List<Metric>> metricsService); @Override Client get(String clientId); @Override long size(); @Override com.github.benmanes.caffeine.cache.Cache<?, ?> get();  }### Answer:
@Test public void testReadingCurrentUsages() { ServiceToMetricsCache serviceToMetricsCache = new ServiceToMetricsCache(apimAdapterConfig, configurationLoader); ClientCache clientCache = new ClientCache(serviceToMetricsCache::get, apimAdapterConfig, configurationLoader); Client client = clientCache.get(CLIENT_ID); assertNotNull("Client must not be null", client); assertEquals("ClientId does not match.", CLIENT_ID, client.getId()); assertEquals("Base does not match.", 3L, client.getUsage("hits").getBase().longValue()); assertEquals("Count does not match.", 0L, client.getUsage("hits").getCurrentUsage().get()); }