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 }
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); }
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); }