public async Task GetMostUsedTags_TwoItemsSourceCollectionSetCountLimitToOne_ReturnOneItemCollection() { var sourceCollection = new List <TagItem> { new TagItem { Name = "tag1", Count = 20 }, new TagItem { Name = "tag2", Count = 10 } }; var restClient = Substitute.For <IRestClient>(); var restResponse = new RestResponse <TagItems> { StatusCode = System.Net.HttpStatusCode.OK, Data = new TagItems() { Has_More = false, Items = sourceCollection } }; restClient.ExecuteGetTaskAsync <TagItems>(Arg.Any <RestRequest>()).Returns(Task.FromResult <IRestResponse <TagItems> >(restResponse)); var usagePercentageTagsProvider = new StackOverflowTagsProvider(restClient); var tags = await usagePercentageTagsProvider.GetMostUsedTags(1); tags.Should().BeEquivalentTo(new List <TagModel> { new TagModel("tag1", 20) }); }
public async Task GetMostUsedTags_ResponseDataIsNull_ThrowException() { var restClient = Substitute.For <IRestClient>(); var restResponse = new RestResponse <TagItems> { StatusCode = System.Net.HttpStatusCode.OK, Data = null }; restClient.ExecuteGetTaskAsync <TagItems>(Arg.Any <RestRequest>()).Returns(Task.FromResult <IRestResponse <TagItems> >(restResponse)); var usagePercentageTagsProvider = new StackOverflowTagsProvider(restClient); await usagePercentageTagsProvider.GetMostUsedTags(1000); }
public async Task GetMostUsedTags_ResponseIsNotOkStatus_ThrowException() { var restClient = Substitute.For <IRestClient>(); var restResponse = new RestResponse <TagItems> { StatusCode = System.Net.HttpStatusCode.BadRequest, Data = new TagItems() { Has_More = false, Items = Enumerable.Empty <TagItem>() } }; restClient.ExecuteGetTaskAsync <TagItems>(Arg.Any <RestRequest>()).Returns(Task.FromResult <IRestResponse <TagItems> >(restResponse)); var usagePercentageTagsProvider = new StackOverflowTagsProvider(restClient); await usagePercentageTagsProvider.GetMostUsedTags(1000); }
public async Task GetMostUsedTags_EmptySourceColelction_ReturnEmptyCollection() { var restClient = Substitute.For <IRestClient>(); var restResponse = new RestResponse <TagItems> { StatusCode = System.Net.HttpStatusCode.OK, Data = new TagItems() { Has_More = false, Items = Enumerable.Empty <TagItem>() } }; restClient.ExecuteGetTaskAsync <TagItems>(Arg.Any <RestRequest>()).Returns(Task.FromResult <IRestResponse <TagItems> >(restResponse)); var usagePercentageTagsProvider = new StackOverflowTagsProvider(restClient); var tags = await usagePercentageTagsProvider.GetMostUsedTags(1000); tags.Should().BeEmpty(); }