Beispiel #1
0
        public Task <string> DownloadStringAsync(string uri)
        {
            var match = WorkItemSummaryRequestCheck.Match(uri);

            if (match.Success && Summaries != null)
            {
                string startNumberValue = match.Groups["StartNumber"].Value;
                int    startNumber      = startNumberValue == "" ? 0 : Convert.ToInt32(startNumberValue);

                PagedWorkItemList returnList = new PagedWorkItemList
                {
                    TotalItems = Summaries.TotalItems
                };

                int countToGet = (startNumber + PageSize > Summaries.WorkItemSummaries.Count) ? Summaries.WorkItemSummaries.Count - startNumber : PageSize;

                returnList.WorkItemSummaries = Summaries.WorkItemSummaries.GetRange(startNumber, countToGet);

                return(Task.FromResult(JsonConvert.SerializeObject(returnList)));
            }
            else if (WorkItemDetail != null)
            {
                return(Task.FromResult(JsonConvert.SerializeObject(WorkItemDetail)));
            }

            throw new HttpRequestFailedException("Some reason to fail");
        }
Beispiel #2
0
        public async Task GetWorkItems_DoesNotIncludeFilteredItems()
        {
            // Arrange
            PagedWorkItemList list = BuildPagedList(2);

            httpClientMock.Summaries = list;
            httpClientMock.PageSize  = 2;
            httpClientMock.SetupMock();

            // Act
            IReadOnlyList <WorkItemSummary> readerItems = await codePlexReader.GetWorkItemsAsync(
                id =>
            {
                if (id == 0)
                {
                    return(false);
                }
                return(true);
            });

            // Assert
            Assert.True(readerItems.Count() == 1);

            WorkItemSummary item = readerItems.First();

            Assert.True(item.Id == 1);
        }
Beispiel #3
0
        public async Task GetWorkItems_SucceedsLessThanOnePage()
        {
            // Arrange
            PagedWorkItemList list = BuildPagedList(2);

            httpClientMock.Summaries = list;
            httpClientMock.SetupMock();

            // Act
            IReadOnlyList <WorkItemSummary> readerItems = await codePlexReader.GetWorkItemsAsync(x => true);

            // Assert
            VerifyWorkItemsReturnedAreSameAsSetOnMock(readerItems, list);
        }
Beispiel #4
0
        public async Task GetWorkItems_PassesIncludeClosedWhenTrue()
        {
            // Arrange
            PagedWorkItemList list = BuildPagedList(6);

            httpClientMock.Summaries = list;
            httpClientMock.PageSize  = 2;
            httpClientMock.SetupMock();

            // Act
            IReadOnlyList <WorkItemSummary> readerItems = await codePlexReader.GetWorkItemsAsync(x => true);

            // Assert
            httpClientMock.HttpClient.Verify(x => x.DownloadStringAsync("https://TestProject.codeplex.com/project/api/issues?showClosed=True"), Times.Once);
            httpClientMock.HttpClient.Verify(x => x.DownloadStringAsync("https://TestProject.codeplex.com/project/api/issues?start=2&showClosed=True"), Times.Once);
        }
Beispiel #5
0
        private static PagedWorkItemList BuildPagedList(int numberofItems)
        {
            PagedWorkItemList pagedWorkItemListReturn = new PagedWorkItemList();
            var items =
                Enumerable.Range(0, numberofItems)
                .Select(
                    i => new WorkItemSummary
            {
                Id    = i,
                Title = $"Some title for {i}"
            });

            pagedWorkItemListReturn.WorkItemSummaries = items.ToList();
            pagedWorkItemListReturn.TotalItems        = numberofItems;

            return(pagedWorkItemListReturn);
        }
Beispiel #6
0
        private static void VerifyWorkItemsReturnedAreSameAsSetOnMock(IEnumerable <WorkItemSummary> workItems, PagedWorkItemList mockSetItems)
        {
            Assert.True(workItems.Count() == mockSetItems.TotalItems);

            foreach (WorkItemSummary summary in workItems)
            {
                WorkItemSummary sentItem = mockSetItems.WorkItemSummaries.Find(x => x.Id == summary.Id);

                Assert.NotNull(sentItem);
                Assert.Equal(sentItem.Title, summary.Title);
            }
        }