public void RequiresGuardianPartnerBenefits_NotRequiredWhenAnyBenefitsNotRequired() { var form = new BestStartGrantBuilder("form") .With(f => f.ApplicantDetails, ApplicantDetailsBuilder.NewValid().Under25CareLeaver(TestNowUtc.Value)) .With(f => f.GuardianBenefits, BenefitsBuilder.NewNone()) .Value(); Navigation.RequiresGuardianPartnerBenefits(form).Should().BeFalse("should not prompt for benefits when already entitled"); }
public void RequiresGuardianDetails_FullTimeEducation() { var form = new BestStartGrantBuilder("form") .With(f => f.ApplicantDetails, ApplicantDetailsBuilder.NewValid().PartOfGuardianBenefits(TestNowUtc.Value)) .With(f => f.GuardianBenefits, null) .Value(); Navigation.RequiresGuardianDetails(form).Should().BeFalse("until guardian benefits are collected, we don't need their details"); Builder.Modify(form).With(f => f.GuardianBenefits, BenefitsBuilder.NewNone()); Navigation.RequiresGuardianDetails(form).Should().BeFalse("guardian details not required if we know they don't have a qualifying benefit"); form.GuardianBenefits.WithBenefit(); Navigation.RequiresGuardianDetails(form).Should().BeTrue("guardian details required if relying on their qualifying benefits"); form.GuardianBenefits.Unknown(); Navigation.RequiresGuardianDetails(form).Should().BeTrue("guardian details required if not sure if relying on their benefits"); }
public void RequiresPartnerDetails() { var form = new BestStartGrantBuilder("form") .With(f => f.ApplicantDetails, ApplicantDetailsBuilder.NewValid().Over25(TestNowUtc.Value)) .With(f => f.ApplicantBenefits, BenefitsBuilder.NewNone()) .With(f => f.PartnerBenefits, null) .Value(); Navigation.RequiresPartnerBenefits(form).Should().BeTrue("test logic requires that the partner benefits are requested"); Navigation.RequiresPartnerDetails(form).Should().BeFalse("until partner benefits are collected, we don't need their details"); Builder.Modify(form).With(f => f.PartnerBenefits, BenefitsBuilder.NewNone()); Navigation.RequiresPartnerDetails(form).Should().BeFalse("partner details not required if we know they don't have a qualifying benefit"); form.PartnerBenefits.WithBenefit(); Navigation.RequiresPartnerDetails(form).Should().BeTrue("partner details required if relying in their qualifying benefits"); form.PartnerBenefits.Unknown(); Navigation.RequiresPartnerDetails(form).Should().BeTrue("partner details required if not sure if relying on their benefits"); }
public void Ineligible_NoGuardianPartnerBenefits() { Func <Action <BestStartGrant>, BestStartGrant> form = mutator => new BestStartGrantBuilder("form") .WithCompletedSections() .With(f => f.GuardianBenefits, BenefitsBuilder.NewNone()) .With(f => f.GuardianPartnerBenefits, BenefitsBuilder.NewNone()) .Value(mutator); var lastBenefitsSection = Sections.GuardianPartnerBenefits; Navigation.IsIneligible(form(f => { }), lastBenefitsSection).Should().BeTrue("not eligible when guardian's partner has no benefits"); Navigation.IsIneligible(form(f => { }), lastBenefitsSection - 1).Should().BeFalse("ineligibility not determined until both guardian and guardian partner benefits are complete"); Navigation.IsIneligible(form(f => f.GuardianPartnerBenefits.WithBenefit()), lastBenefitsSection).Should().BeFalse("not ineligible if guardian's partner on a benefit"); Navigation.IsIneligible(form(f => f.GuardianBenefits.Unknown()), lastBenefitsSection).Should().BeFalse("cannot assume ineligible if guardian benefit not known"); Navigation.IsIneligible(form(f => f.GuardianPartnerBenefits.Unknown()), lastBenefitsSection).Should().BeFalse("cannot assume ineligible if guardian partner benefit not known"); }