public List <TitledIconViewModel> Status => status; // Because Xamarin.Forms cannot bind to readonly, we expose a getter to our collection

        public OnboardingProfileViewModel(OnboardingProfile profile, BudgetViewModel budgetViewModel)
        {
            Profile = profile ?? throw new ArgumentNullException(nameof(profile));
            Budget  = budgetViewModel ?? throw new ArgumentNullException(nameof(budgetViewModel));

            // Create VMs for all goal, status, and step items
            profile.Goals.ToList().ForEach(goal => Goals.Add(new TitledIconViewModel(goal)));
            profile.Status.ToList().ForEach(status => Status.Add(new TitledIconViewModel(status)));
        }
        public void Constructor_ExpectPopulatedParameters()
        {
            var budget = BudgetBuilder.Build();
            var goals  = new TitledIconList();
            var status = new TitledIconList();

            var profile = new OnboardingProfile(budget, goals, status);

            profile.Budget.Should().NotBeNull();
            profile.Goals.Should().NotBeNull();
            profile.Status.Should().NotBeNull();
        }
 public OnboardingProfileViewModelTest()
 {
     budget          = BudgetBuilder.Build();
     budgetViewModel = new BudgetViewModel(budget);
     profile         = OnboardingProfileBuilder.Build(budget);
 }