public void UpdateExpenseCommand() { var navigationService = new Mock <INavigationService>(); var referExpense = new Mock <IReferExpense>(); var expenses = new ObservableCollection <Expense>(); referExpense.Setup(m => m.Expenses).Returns(new ReadOnlyObservableCollection <Expense>(expenses)); var actual = new ExpenseListPageViewModel(navigationService.Object, referExpense.Object); Assert.NotNull(actual.UpdateExpenseCommand); Assert.True(actual.UpdateExpenseCommand.CanExecute()); var isCalled = false; navigationService .Setup(m => m.NavigateAsync("AddExpensePage", It.IsAny <NavigationParameters>(), null, true)) .Returns(Task.CompletedTask) .Callback <string, NavigationParameters, bool?, bool>( (path, navigationParameters, useModalNavigation, animated) => { isCalled = true; Assert.NotNull(navigationParameters); Assert.Equal(1, navigationParameters.Count); Assert.True(navigationParameters.ContainsKey(AddExpensePageViewModel.ExpenseIdKey)); Assert.Equal("expenseId", navigationParameters[AddExpensePageViewModel.ExpenseIdKey]); }); actual.UpdateExpenseCommand.Execute(new Expense { Id = "expenseId" }); Assert.True(isCalled); }
public void ExpensesProperty() { ReactivePropertyScheduler.SetDefault(CurrentThreadScheduler.Instance); var navigationService = new Mock <INavigationService>(); var referExpense = new Mock <IReferExpense>(); var expenses = new ObservableCollection <Expense>(); referExpense.Setup(m => m.Expenses).Returns(new ReadOnlyObservableCollection <Expense>(expenses)); var actual = new ExpenseListPageViewModel(navigationService.Object, referExpense.Object); var expense = new Expense(); expenses.Add(expense); Assert.Equal(1, actual.Expenses.Count); Assert.Equal(expense, actual.Expenses[0]); expenses.Clear(); Assert.Equal(0, actual.Expenses.Count); actual.Destroy(); expenses.Add(expense); Assert.Equal(0, actual.Expenses.Count); }
public void OnNavigatingTo() { var navigationService = new Mock <INavigationService>(); var referExpense = new Mock <IReferExpense>(); var expenses = new ObservableCollection <Expense>(); referExpense.Setup(m => m.Expenses).Returns(new ReadOnlyObservableCollection <Expense>(expenses)); var actual = new ExpenseListPageViewModel(navigationService.Object, referExpense.Object); actual.OnNavigatingTo(null); }
public void Constructor() { var navigationService = new Mock <INavigationService>(); var referExpense = new Mock <IReferExpense>(); referExpense.Setup(m => m.Expenses) .Returns(new ReadOnlyObservableCollection <Expense>(new ObservableCollection <Expense>())); var actual = new ExpenseListPageViewModel(navigationService.Object, referExpense.Object); Assert.NotNull(actual.Expenses); Assert.Equal(0, actual.Expenses.Count); }
public void AddExpenseCommand() { var navigationService = new Mock <INavigationService>(); var referExpense = new Mock <IReferExpense>(); var expenses = new ObservableCollection <Expense>(); referExpense.Setup(m => m.Expenses).Returns(new ReadOnlyObservableCollection <Expense>(expenses)); var actual = new ExpenseListPageViewModel(navigationService.Object, referExpense.Object); Assert.NotNull(actual.AddExpenseCommand); Assert.True(actual.AddExpenseCommand.CanExecute()); actual.AddExpenseCommand.Execute(null); navigationService.Verify(m => m.NavigateAsync("AddExpensePage", null, null, true), Times.Once); }