public async Task GetItemTypedAsync_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.GetItemAsync <TestItem>(codename); scenario = scenarioBuilder.WithResponse(url, updatedItem).Build(); var secondResponse = await scenario.CachingClient.GetItemAsync <TestItem>(codename); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetItemsJsonAsync_ResponseIsCached() { var url = "items"; var itemB = CreateItem("b", "original"); var items = CreateItemsResponse(new[] { CreateItem("a", "original"), itemB }); var updatedItems = CreateItemsResponse(new[] { CreateItem("a", "updated"), itemB }); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, items).Build(); var firstResponse = await scenario.CachingClient.GetItemsJsonAsync(); scenario = scenarioBuilder.WithResponse(url, updatedItems).Build(); var secondResponse = await scenario.CachingClient.GetItemsJsonAsync(); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetTaxonomiesAsync_ResponseIsCached() { var url = "taxonomies"; var taxonomyA = CreateTaxonomy("a", new[] { "term1" }); var taxonomies = CreateTaxonomiesResponse(new[] { taxonomyA }); var updatedTaxonomies = CreateTaxonomiesResponse(new[] { taxonomyA, CreateTaxonomy("b", new[] { "term3" }) }); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, taxonomies).Build(); var firstResponse = await scenario.CachingClient.GetTaxonomiesAsync(); scenario = scenarioBuilder.WithResponse(url, updatedTaxonomies).Build(); var secondResponse = await scenario.CachingClient.GetTaxonomiesAsync(); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetTaxonomyAsync_ResponseIsCached() { const string codename = "codename"; var url = $"taxonomies/{codename}"; var taxonomy = CreateTaxonomy(codename, new[] { "term1" }); var updatedTaxonomy = CreateTaxonomy(codename, new[] { "term1", "term2" }); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, taxonomy).Build(); var firstResponse = await scenario.CachingClient.GetTaxonomyAsync(codename); scenario = scenarioBuilder.WithResponse(url, updatedTaxonomy).Build(); var secondResponse = await scenario.CachingClient.GetTaxonomyAsync(codename); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetTypesAsync_ResponseIsCached() { var url = "types"; var typeA = CreateType("a"); var types = CreateTypesResponse(new[] { typeA }); var updatedTypes = CreateTypesResponse(new[] { typeA, CreateType("b") }); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, types).Build(); var firstResponse = await scenario.CachingClient.GetTypesAsync(); scenario = scenarioBuilder.WithResponse(url, updatedTypes).Build(); var secondResponse = await scenario.CachingClient.GetTypesAsync(); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetTypeAsync_ResponseIsCached() { const string codename = "codename"; var url = $"types/{codename}"; var type = CreateType(codename, "Original"); var updatedType = CreateType(codename, "Updated"); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, type).Build(); var firstResponse = await scenario.CachingClient.GetTypeAsync(codename); scenario = scenarioBuilder.WithResponse(url, updatedType).Build(); var secondResponse = await scenario.CachingClient.GetTypeAsync(codename); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }
public async Task GetContentElementAsync_ResponseIsCached() { const string typeCodename = "type"; const string elementCodename = "element"; var url = $"types/{typeCodename}/elements/{elementCodename}"; var contentElement = CreateContentElement(elementCodename, "Original"); var updatedContentElement = CreateContentElement(elementCodename, "Updated"); var scenarioBuilder = new ScenarioBuilder(); var scenario = scenarioBuilder.WithResponse(url, contentElement).Build(); var firstResponse = await scenario.CachingClient.GetContentElementAsync(typeCodename, elementCodename); scenario = scenarioBuilder.WithResponse(url, updatedContentElement).Build(); var secondResponse = await scenario.CachingClient.GetContentElementAsync(typeCodename, elementCodename); firstResponse.Should().NotBeNull(); firstResponse.Should().BeEquivalentTo(secondResponse); scenario.GetRequestCount(url).Should().Be(1); }