Пример #1
0
        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());
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        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);
        }
Пример #5
0
        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]);
        }