public async Task batch_load_reads_from_underlying_datasource_when_key_not_in_cache()
        {
            var cache   = new BatchReadThroughCache <int, int>(new BatchValueIsKey <int, int>(), 10, null);
            var results = await cache.GetBatchAsync(new int[] { 2 });

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Length, "number of results returned");
            Assert.AreEqual(2, results[0], "results[0]");
        }
        public async Task batch_load_reads_from_cache()
        {
            var cache = new BatchReadThroughCache <int, int>(new BatchValueIsKey <int, int>(), 10, null);

            Assert.AreEqual(2, cache[2]);
            Assert.AreEqual(1, cache.Count, "Count");
            var results = await cache.GetBatchAsync(new int[] { 2 });

            Assert.AreEqual(1, cache.Count, "no extra items added");
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Length, "number of results returned");
            Assert.AreEqual(2, results[0], "results[0]");
        }