public async Task GetItemJsonAsync_ResponseIsCached() { const string codename = "codename"; var url = $"items/{codename}"; var item = CreateItemResponse(CreateItem(codename, "original")); var updatedItem = CreateItemResponse(CreateItem(codename, "updated")); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, item).Build(); var firstResponse = await scenario.CachingClient.GetItemJsonAsync(codename); scenario = scenarioBuilder.WithResponse(url, updatedItem).Build(); var secondResponse = await scenario.CachingClient.GetItemJsonAsync(codename); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetItemJsonAsync_InvalidatedByItemDependency() { const string codename = "codename"; var url = $"items/{codename}"; var item = CreateItemResponse(CreateItem(codename, "original")); var updatedItem = CreateItemResponse(CreateItem(codename, "updated")); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, item).Build(); var firstResponse = await scenario.CachingClient.GetItemJsonAsync(codename); scenario = scenarioBuilder.WithResponse(url, updatedItem).Build(); scenario.InvalidateDependency(CacheHelper.GetItemDependencyKey(codename)); var secondResponse = await scenario.CachingClient.GetItemJsonAsync(codename); firstResponse.Should().NotBeNull(); secondResponse.Should().NotBeNull(); firstResponse.Should().NotEqual(secondResponse); scenario.GetRequestCount(url).Should().Be(2); }