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 )); }
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)); }
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); }
public void ConstructorAssignsTitle() { CollectionPageViewModel <Uom> viewModel = new ViewModelTestBuilder <Uom>() .SetConstructor_Title("Uoms") .NewPageService_NotCalled() .ReadPageService_NotCalled() .DeleteService_NotCalled(); Assert.AreEqual("Uoms", viewModel.Title); }
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) ); }
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(); }
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 )); }
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 )); }
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() ); }
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)); }