public void OnNavigatedTo_When_Service_Not_Available_Then_Pops_Alert() { var repository = new MockProductCatalogRepository(); var navigationService = new MockNavigationService(); var alertService = new MockAlertMessageService(); var resourceLoader = new MockResourceLoader(); bool alertCalled = false; repository.GetProductAsyncDelegate = (productNumber) => { throw new HttpRequestException(); }; repository.GetProductsAsyncDelegate = (subCategoryId) => { throw new HttpRequestException(); }; alertService.ShowAsyncDelegate = (msg, title) => { alertCalled = true; return Task.FromResult(string.Empty); }; var target = new ItemDetailPageViewModel(repository, navigationService, new MockShoppingCartRepository(), alertService, resourceLoader, null, new MockSearchPaneService()); target.OnNavigatedTo("1", NavigationMode.New, null); Assert.IsTrue(alertCalled); }
public async Task SubmitValidOrder_CallsSuccessDialog() { bool successDialogCalled = false; bool errorDialogCalled = false; var navigationService = new MockNavigationService(); var accountService = new MockAccountService() { GetSignedInUserAsyncDelegate = () => Task.FromResult<UserInfo>(new UserInfo()) }; var orderService = new MockOrderService() { // the order is valid, it can be processed ProcessOrderAsyncDelegate = (a, b) => Task.FromResult(true) }; var resourcesService = new MockResourceLoader() { GetStringDelegate = (key) => key }; var alertService = new MockAlertMessageService() { ShowAsyncWithCommandsDelegate = (dialogTitle, dialogMessage, dialogCommands) => { successDialogCalled = dialogTitle.ToLower().Contains("purchased"); errorDialogCalled = !successDialogCalled; return Task.FromResult(successDialogCalled); } }; var target = new CheckoutSummaryPageViewModel(navigationService, orderService, null, null, null, null, accountService, null, resourcesService, alertService); await target.SubmitCommand.Execute(); Assert.IsTrue(successDialogCalled); Assert.IsFalse(errorDialogCalled); }
public void FailedCallToShoppingCartRepository_ShowsAlert() { var alertCalled = false; var shoppingCartRepository = new MockShoppingCartRepository(); shoppingCartRepository.GetShoppingCartAsyncDelegate = () => { throw new HttpRequestException(); }; var alertMessageService = new MockAlertMessageService(); alertMessageService.ShowAsyncDelegate = (s, s1) => { alertCalled = true; Assert.AreEqual("Error", s1); return Task.FromResult(string.Empty); }; var accountService = new MockAccountService(); accountService.GetSignedInUserAsyncDelegate = () => Task.FromResult((UserInfo)null); var target = new ShoppingCartTabUserControlViewModel(shoppingCartRepository, null, null, alertMessageService, new MockResourceLoader(), accountService); Assert.IsTrue(alertCalled); }
public async Task SubmitInvalidOrder_CallsErrorDialog() { bool successDialogCalled = false; bool errorDialogCalled = false; var navigationService = new MockNavigationService(); var accountService = new MockAccountService() { GetSignedInUserAsyncDelegate = () => Task.FromResult<UserInfo>(new UserInfo()) }; var orderService = new MockOrderService() { // the order is invalid, it cannot be processed ProcessOrderAsyncDelegate = (a, b) => { var modelValidationResult = new ModelValidationResult(); modelValidationResult.ModelState.Add("someKey", new List<string>() { "the value of someKey is invalid" }); throw new ModelValidationException(modelValidationResult); } }; var resourcesService = new MockResourceLoader() { GetStringDelegate = (key) => key }; var alertService = new MockAlertMessageService() { ShowAsyncDelegate = (dialogTitle, dialogMessage) => { successDialogCalled = dialogTitle.ToLower().Contains("purchased"); errorDialogCalled = !successDialogCalled; return Task.FromResult(successDialogCalled); } }; var target = new CheckoutSummaryPageViewModel(navigationService, orderService, null, null, null, null, accountService, null, resourcesService, alertService); await target.SubmitCommand.Execute(); Assert.IsFalse(successDialogCalled); Assert.IsTrue(errorDialogCalled); }
public void FailedCallToProductCatalogRepository_ShowsAlert() { var alertCalled = false; var productCatalogRepository = new MockProductCatalogRepository(); var navService = new MockNavigationService(); var searchPaneService = new MockSearchPaneService(); productCatalogRepository.GetCategoriesAsyncDelegate = (maxAmmountOfProducts) => { throw new HttpRequestException(); }; var alertMessageService = new MockAlertMessageService(); alertMessageService.ShowAsyncDelegate = (s, s1) => { alertCalled = true; Assert.AreEqual("Error", s1); return Task.FromResult(string.Empty); }; var target = new HubPageViewModel(productCatalogRepository, navService, alertMessageService, new MockResourceLoader(), searchPaneService); target.OnNavigatedTo(null, NavigationMode.New, null); Assert.IsTrue(alertCalled); }