public async Task ReadShouldCacheForTheTimeSpanProvided() { #region Setup var memory = new MemoryCacheProvider(TimeSpan.FromSeconds(5)); HttpContent empty = new StringContent(string.Empty); HttpRequestMessage request = new HttpRequestMessage(); request.Method = HttpMethod.Get; HttpResponseMessage response = new HttpResponseMessage(); response.Content = testContent; this.http.Setup(h => h.SendOriginalAsync()).Returns(() => Task.FromResult(response)); this.http.SetupGet(h => h.OriginalRequest).Returns(request); #endregion HttpContent result = await memory.Read(testUri, this.http.Object); Assert.AreEqual(testContent, result); response.Content = empty; result = await memory.Read(testUri, this.http.Object); Assert.AreEqual(testContent, result); await Task.Delay(5000); result = await memory.Read(testUri, this.http.Object); Assert.AreEqual(empty, result); }