Example #1
0
        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)
            });
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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();
        }