コード例 #1
0
        public BudgetGroupViewModel(BudgetGroup budgetGroup)
        {
            BudgetGroup  = budgetGroup ?? throw new ArgumentNullException(nameof(budgetGroup));
            presentation = BudgetGroupPresentationBuilder.Build(budgetGroup);

            budgetGroup.BudgetItems.ToList().ForEach(item => AddBudgetItemViewModel(item));
            budgetGroup.BudgetItems.CollectionChanged += BudgetItemsChanged;

            budgetGroup.PropertyChanged += (o, e) => PropertyChanged?.Invoke(this, e); // NOTE: this only works as the names in this VM are the same as the model
        }
コード例 #2
0
        public void Constructor_ValidParameter_PresentationSetupCorrectly(string id, string groupName)
        {
            var group = new BudgetGroup(id, groupName);
            var expectedPresentation = BudgetGroupPresentationBuilder.IncomeGroupPresentation;

            if (groupName == Constants.Housing)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.HousingGroupPresentation;
            }

            if (groupName == Constants.Transportation)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.TransportationGroupPresentation;
            }

            if (groupName == Constants.Food)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.FoodGroupPresentation;
            }

            if (groupName == Constants.Personal)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.PersonalGroupPresentation;
            }

            if (groupName == Constants.Debt)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.DebtGroupPresentation;
            }

            if (groupName == Constants.Giving)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.GivingGroupPresentation;
            }

            if (groupName == Constants.BasicExpenses)
            {
                expectedPresentation = BudgetGroupPresentationBuilder.BasicExpensesDisplayGroup;
            }

            // TEST: Construct a view model
            var presentation = BudgetGroupPresentationBuilder.Build(group);

            presentation.Should().BeEquivalentTo(expectedPresentation);
        }
コード例 #3
0
        public void Constructor_ValidParameters_PresentionSetupCorrectly(string groupName)
        {
            var group = new BudgetGroup(groupName);
            var expectedPresentation = BudgetGroupPresentationBuilder.Build(group);

            // TEST: Construct a view model
            BudgetGroupViewModel viewModel = new BudgetGroupViewModel(group);

            // Confirm properties and items created in view model
            viewModel.Name.Should().Be(groupName);
            viewModel.BudgetItems.Should().BeEmpty();
            viewModel.ColorKey.Should().Be(expectedPresentation.ColorKey);
            viewModel.IconSource.Should().Be(expectedPresentation.IconSource);
            viewModel.Description.Should().Be(expectedPresentation.Description);
            viewModel.Subtitle.Should().Be(expectedPresentation.Subtitle);
            viewModel.AddItemText.Should().Be(expectedPresentation.AddItemText);
            viewModel.CustomTitle.Should().Be(expectedPresentation.CustomTitle);
            viewModel.HasSecondaryHeader.Should().Be(expectedPresentation.HasSecondaryHeader);
            viewModel.IsTitleVisible.Should().Be(string.IsNullOrWhiteSpace(expectedPresentation.CustomTitle));
            viewModel.IsCustomTitleVisible.Should().Be(!viewModel.IsTitleVisible);
            viewModel.HeaderTextWithoutDate.Should().Be(groupName.ToUpper());
            viewModel.HeaderText.Should().Be(expectedPresentation.HasDateOnHeader ? viewModel.HeaderTextWithDate : viewModel.HeaderTextWithoutDate);
        }