コード例 #1
0
        public async Task SaveItemAsync_SaveServiceThrows_BadRequest_NameError()
        {
            var initialUom      = new Uom(1001, "in", "inch");
            var savedUom        = new Uom(1001, "", "inchy");
            var errorDictionary = new Dictionary <string, ReadOnlyCollection <string> >
            {
                ["Name"] = new ReadOnlyCollection <string>(new List <string> {
                    "Error1", "Error2"
                })
            };
            var exception = new BadRequestHttpException(errorDictionary);
            UomItemViewModel viewModel = new ViewModelTestBuilder <Uom>()
                                         .Then_ReadItemService_ReadItemAsync(initialUom)
                                         .Then_SaveItemService_SaveItemAsync_Throws(savedUom, UomEqual.Check, exception);
            await viewModel.GetItemAsync(1001);

            viewModel.Name        = "";
            viewModel.Description = "inchy";
            Assert.ThrowsAsync <BadRequestHttpException>
            (
                async() => await viewModel.SaveAsync()
            );
            Assert.True(UomItemViewModelEqual.Check
                        (
                            expected: savedUom,
                            expectedNameErrors: "Error1 Error2",
                            expectedDescriptionErrors: null,
                            actual: viewModel
                        ));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        public async Task SaveItemAsync_SaveServiceThrows_EmptyBadRequest()
        {
            var initialUom      = new Uom(1001, "in", "inch");
            var savedUom        = new Uom(1001, "in.", "");
            var errorDictionary = new Dictionary <string, ReadOnlyCollection <string> >
            {
                ["Description"] = new ReadOnlyCollection <string>(new List <string> {
                    ""
                })
            };
            var exception = new BadRequestHttpException(errorDictionary);
            UomItemViewModel viewModel = new ViewModelTestBuilder <Uom>()
                                         .Then_ReadItemService_ReadItemAsync(initialUom)
                                         .Then_SaveItemService_SaveItemAsync_Throws(savedUom, UomEqual.Check, exception);
            await viewModel.GetItemAsync(1001);

            viewModel.Name        = "in.";
            viewModel.Description = "";
            var actualException = Assert.ThrowsAsync <Exception>
                                  (
                async() => await viewModel.SaveAsync()
                                  );

            Assert.AreEqual(LrpConstants.NotSavedValidationProblem, actualException.Message);
        }
コード例 #4
0
        public void ConstructorAssignsTitle()
        {
            CollectionPageViewModel <Uom> viewModel = new ViewModelTestBuilder <Uom>()
                                                      .SetConstructor_Title("Uoms")
                                                      .NewPageService_NotCalled()
                                                      .ReadPageService_NotCalled()
                                                      .DeleteService_NotCalled();

            Assert.AreEqual("Uoms", viewModel.Title);
        }
コード例 #5
0
        public void DeleteAsync_ItemNull()
        {
            CollectionPageViewModel <Uom> viewModel = new ViewModelTestBuilder <Uom>()
                                                      .SetConstructor_Title("Uoms")
                                                      .NewPageService_NotCalled()
                                                      .ReadPageService_NotCalled()
                                                      .DeleteService_NotCalled();

            Assert.ThrowsAsync <ArgumentNullException>
            (
                async() => await viewModel.DeleteAsync(null)
            );
        }
コード例 #6
0
        public async Task SaveItemAsync()
        {
            var initialUom             = new Uom(1001, "in", "inch");
            var savedUom               = new Uom(1001, "in.", "inchy");
            UomItemViewModel viewModel = new ViewModelTestBuilder <Uom>()
                                         .Then_ReadItemService_ReadItemAsync(initialUom)
                                         .Then_SaveItemService_SaveItemAsync(savedUom, UomEqual.Check);
            await viewModel.GetItemAsync(1001);

            viewModel.Name        = "in.";
            viewModel.Description = "inchy";
            await viewModel.SaveAsync();
        }
コード例 #7
0
        public async Task GetItemAsync_id0()
        {
            UomItemViewModel viewModel = new ViewModelTestBuilder <Uom>()
                                         .ReadItemService_NotCalled()
                                         .SaveItemService_NotCalled();
            await viewModel.GetItemAsync(0);

            Assert.True(UomItemViewModelEqual.Check
                        (
                            expected: new Uom(),
                            expectedNameErrors: null,
                            expectedDescriptionErrors: null,
                            actual: viewModel
                        ));
        }
コード例 #8
0
        public async Task GetItemAsync_IdNonZero()
        {
            var expectedUom            = new Uom(1001, "in", "inch");
            UomItemViewModel viewModel = new ViewModelTestBuilder <Uom>()
                                         .SaveItemService_NotCalled()
                                         .Then_ReadItemService_ReadItemAsync(expectedUom);
            await viewModel.GetItemAsync(1001);

            Assert.True(UomItemViewModelEqual.Check
                        (
                            expected: expectedUom,
                            expectedNameErrors: null,
                            expectedDescriptionErrors: null,
                            actual: viewModel
                        ));
        }
コード例 #9
0
        public async Task SaveItemAsync_SaveServiceThrows_NotBadRequest()
        {
            var initialUom             = new Uom(1001, "in", "inch");
            var savedUom               = new Uom(1001, "in.", "");
            var exception              = new HttpRequestException();
            UomItemViewModel viewModel = new ViewModelTestBuilder <Uom>()
                                         .Then_ReadItemService_ReadItemAsync(initialUom)
                                         .Then_SaveItemService_SaveItemAsync_Throws(savedUom, UomEqual.Check, exception);
            await viewModel.GetItemAsync(1001);

            viewModel.Name        = "in.";
            viewModel.Description = "";
            Assert.ThrowsAsync <HttpRequestException>
            (
                async() => await viewModel.SaveAsync()
            );
        }
コード例 #10
0
        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));
        }