public async Task SearchAsync_PageForwardAsync_PageBackAsync()
        {
            var page1 = PageMaker.GetExpectedPage(
                data: UomTestData.GetUomsArray(),
                searchText: string.Empty,
                skip: 0,
                take: 20
                );
            var expectedPage1 = CollectionPageDataMaker.GetExpectedPage(page1, "http://localhost/api");

            var page2 = PageMaker.GetExpectedPage(
                data: UomTestData.GetUomsArray(),
                searchText: string.Empty,
                skip: 20,
                take: 20
                );
            var expectedPage2 = CollectionPageDataMaker.GetExpectedPage(page2, "http://localhost/api");

            CollectionPageViewModel <Uom> viewModel = new ViewModelTestBuilder <Uom>()
                                                      .SetConstructor_Title("Uoms")
                                                      .DeleteService_NotCalled()
                                                      .Then_NewPageService_ReadPageAsync("", expectedPage1)
                                                      .Then_ReadPageService_PageForwardAsync(expectedPage2)
                                                      .Then_ReadPageService_PageBackAsync(expectedPage1);
            await viewModel.SearchAsync("");

            Assert.True(CollectionPageViewModelChecker.Check(expectedPage1, viewModel, UomEqual.Check));
            await viewModel.PageForwardAsync();

            Assert.True(CollectionPageViewModelChecker.Check(expectedPage2, viewModel, UomEqual.Check));
            await viewModel.PageBackAsync();

            Assert.True(CollectionPageViewModelChecker.Check(expectedPage1, viewModel, UomEqual.Check));
        }
Exemple #2
0
        public async Task ReadPageAsync()
        {
            var url  = "http://abc.com/api";
            var page = PageMaker.GetExpectedPage(
                data: UomTestData.GetUomsArray(),
                searchText: string.Empty,
                skip: 0,
                take: 20
                );
            var expectedResponse           = CollectionPageHttpResponseMaker.GetExpectedResponse(page, url);
            var expectedData               = CollectionPageDataMaker.GetExpectedPage(page, url);
            HttpRequestMessage sentMessage = null;
            var httpService  = new Mock <IHttpReadService>(MockBehavior.Strict);
            var deserializer = new Mock <IContentDeserializer>(MockBehavior.Strict);
            var sequence     = new MockSequence();

            httpService
            .InSequence(sequence)
            .Setup(h => h.SendAsync(It.IsAny <HttpRequestMessage>()))
            .ReturnsAsync(expectedResponse)
            .Callback <HttpRequestMessage>((request) => sentMessage = request);
            deserializer
            .InSequence(sequence)
            .Setup(d => d.DeserializeAsync <ImmutableList <Uom> >(expectedResponse.Content as StringContent))
            .ReturnsAsync(expectedData.Items as ImmutableList <Uom>);

            var uut        = new ReadPageServiceBuildRequest <Uom>(httpService.Object, deserializer.Object);
            var actualData = await uut.ReadPageAsync(url);

            Assert.NotNull(sentMessage);
            Assert.AreEqual(url, sentMessage.RequestUri.ToString());
            Assert.AreEqual(sentMessage.Method, HttpMethod.Get);
            Assert.True(CollectionPageDataEqual.Check(expectedData, actualData, UomEqual.Check));
        }
        public async Task DeleteAsync()
        {
            var page = PageMaker.GetExpectedPage(
                data: UomTestData.GetUomsArray(),
                searchText: string.Empty,
                skip: 0,
                take: 20
                );
            var expectedPage = CollectionPageDataMaker.GetExpectedPage(page, "http://localhost/api");

            CollectionPageViewModel <Uom> viewModel = new ViewModelTestBuilder <Uom>()
                                                      .SetConstructor_Title("Uoms")
                                                      .Then_NewPageService_ReadPageAsync("", expectedPage)
                                                      .Then_DeleteService_DeleteItemAsync(1001)
                                                      .Then_ReadPageService_RefreshCurrentPageAsync(expectedPage);

            await viewModel.SearchAsync("");

            Assert.True(CollectionPageViewModelChecker.Check(expectedPage, viewModel, UomEqual.Check));
            await viewModel.DeleteAsync(new Uom().WithId(1001));

            Assert.True(CollectionPageViewModelChecker.Check(expectedPage, viewModel, UomEqual.Check));
        }