public void OnNavigatedToWhenUpdateReport() { var navigationService = new Mock <INavigationService>(); var editReport = new Mock <IEditReport>(); var expense01 = new SelectableExpense(new Expense()) { IsSelected = false }; var expense02 = new SelectableExpense(new Expense()) { IsSelected = true }; var expenses = new ObservableCollection <SelectableExpense>(new[] { expense01, expense02 }); editReport .Setup(m => m.SelectableExpenses) .Returns(new ReadOnlyObservableCollection <SelectableExpense>(expenses)); var actual = new ReportPageViewModel(navigationService.Object, editReport.Object); var navigationParameter = new NavigationParameters { { ReportPageViewModel.ReportIdKey, "reportId" } }; actual.OnNavigatedTo(navigationParameter); editReport.Verify(m => m.InitializeForUpdateReportAsync("reportId"), Times.Once); Assert.NotNull(actual.Expenses); Assert.Equal(1, actual.Expenses.Count()); Assert.Equal(expense02, actual.Expenses.First()); }
public void ConstructorFromExpense() { var expected = new Expense { Id = "Id", CategoryId = "CategoryId", Amount = 123456789012345, Date = DateTime.MinValue, Location = "Location", Note = "Note", ReportId = "ReportId", UserId = "UserId" }; var actual = new SelectableExpense(expected); Assert.Equal((string)expected.Id, actual.Id); Assert.Equal((string)expected.CategoryId, actual.CategoryId); Assert.Equal(expected.Amount, actual.Amount); Assert.Equal(expected.Date, actual.Date); Assert.Equal((string)expected.Location, actual.Location); Assert.Equal((string)expected.Note, actual.Note); Assert.Equal((string)expected.ReportId, actual.ReportId); Assert.Equal((string)expected.UserId, actual.UserId); Assert.False(actual.IsSelected); }
public void InitializeCommand() { var navigationService = new Mock <INavigationService>(); var editReport = new Mock <IEditReport>(); var expense01 = new SelectableExpense(new Expense()) { IsSelected = false }; var expense02 = new SelectableExpense(new Expense()) { IsSelected = true }; var expenses = new ObservableCollection <SelectableExpense>(new[] { expense01, expense02 }); editReport .Setup(m => m.SelectableExpenses) .Returns(new ReadOnlyObservableCollection <SelectableExpense>(expenses)); var actual = new ReportPageViewModel(navigationService.Object, editReport.Object); Assert.Null(actual.Expenses); actual.InitializeCommand.Execute(); Assert.NotNull(actual.Expenses); Assert.Equal(1, actual.Expenses.Count()); Assert.Equal(expense02, actual.Expenses.First()); }
public void ExpensesProperty() { var navigationService = new Mock <INavigationService>(); var editReport = new Mock <IEditReport>(); var actual = new ReportPageViewModel(navigationService.Object, editReport.Object); var expenses = new SelectableExpense[] {}; Assert.PropertyChanged(actual, "Expenses", () => { actual.Expenses = expenses; }); Assert.Equal(expenses, actual.Expenses); }
public void OnNavigatedToWhenNewCreation() { var navigationService = new Mock <INavigationService>(); var editReport = new Mock <IEditReport>(); var expense01 = new SelectableExpense(new Expense()) { IsSelected = false }; var expense02 = new SelectableExpense(new Expense()) { IsSelected = true }; var expenses = new ObservableCollection <SelectableExpense>(new[] { expense01, expense02 }); editReport .Setup(m => m.SelectableExpenses) .Returns(new ReadOnlyObservableCollection <SelectableExpense>(expenses)); var actual = new ReportPageViewModel(navigationService.Object, editReport.Object); var navigationParameter = new NavigationParameters { { ReportPageViewModel.ReportIdKey, null } }; actual.OnNavigatedTo(navigationParameter); editReport.Verify(m => m.InitializeForNewReportAsync(), Times.Once); // Actually, it is not necessary when starting new registration. // It is to simplify the implementation. // Therefore, we have acquired Expense every time. Assert.NotNull(actual.Expenses); Assert.Equal(1, actual.Expenses.Count()); Assert.Equal(expense02, actual.Expenses.First()); }
public void Constructor() { var editReport = new Mock <IEditReport>(); var expense01 = new SelectableExpense(new Expense()) { IsSelected = false }; var expense02 = new SelectableExpense(new Expense()) { IsSelected = true }; var expenses = new ObservableCollection <SelectableExpense>(new[] { expense01, expense02 }); editReport .Setup(m => m.SelectableExpenses) .Returns(new ReadOnlyObservableCollection <SelectableExpense>(expenses)); var actual = new ExpenseSelectionPageViewModel(editReport.Object); Assert.NotNull(actual.Expenses); Assert.Equal(2, actual.Expenses.Count); Assert.Equal(expense01, actual.Expenses[0]); Assert.Equal(expense02, actual.Expenses[1]); }