private NextSection AddGuardianPartnerBenefits(NextSection current, Action <Benefits> mutator = null)
 {
     current.Section.Should().Be(Sections.GuardianPartnerBenefits);
     return(NextSection(current.Section, () => new AddGuardianPartnerBenefits {
         FormId = current.Id, GuardianPartnerBenefits = BenefitsBuilder.NewWithBenefit(mutator)
     }.Execute()));
 }
        protected static BsgDetail NewBsgDetail(string formId, int childCount = 2)
        {
            var detail = new BsgDetail
            {
                Id = formId,

                Consent                 = ConsentBuilder.NewValid(),
                ApplicantDetails        = ApplicantDetailsBuilder.NewValid(),
                ExpectedChildren        = ExpectedChildrenBuilder.NewValid(),
                ExistingChildren        = ExistingChildrenBuilder.NewValid(childCount),
                ApplicantBenefits       = BenefitsBuilder.NewWithBenefit(),
                PartnerBenefits         = BenefitsBuilder.NewWithBenefit(),
                GuardianBenefits        = BenefitsBuilder.NewWithBenefit(),
                GuardianPartnerBenefits = BenefitsBuilder.NewWithBenefit(),
                PartnerDetails          = RelationDetailsBuilder.NewValid("partner"),
                GuardianDetails         = RelationDetailsBuilder.NewValid("guardian"),
                GuardianPartnerDetails  = RelationDetailsBuilder.NewValid("guardian partner"),
                HealthProfessional      = HealthProfessionalBuilder.NewValid(),
                PaymentDetails          = PaymentDetailsBuilder.NewValid(),
                Evidence                = EvidenceBuilder.NewValid(),
                Declaration             = DeclarationBuilder.NewValid(),
            };

            return(detail);
        }
Ejemplo n.º 3
0
        public BestStartGrantBuilder WithCompletedSections(bool markAsCompleted = true)
        {
            With(f => f.Consent, ConsentBuilder.NewValid());
            With(f => f.ApplicantDetails, ApplicantDetailsBuilder.NewValid());
            With(f => f.ExpectedChildren, ExpectedChildrenBuilder.NewValid());
            With(f => f.ExistingChildren, ExistingChildrenBuilder.NewValid());
            With(f => f.ApplicantBenefits, BenefitsBuilder.NewWithBenefit());
            With(f => f.PartnerBenefits, BenefitsBuilder.NewWithBenefit());
            With(f => f.GuardianBenefits, BenefitsBuilder.NewWithBenefit());
            With(f => f.GuardianPartnerBenefits, BenefitsBuilder.NewWithBenefit());
            With(f => f.PartnerDetails, RelationDetailsBuilder.NewValid("partner"));
            With(f => f.GuardianDetails, RelationDetailsBuilder.NewValid("guardian"));
            With(f => f.GuardianPartnerDetails, RelationDetailsBuilder.NewValid("guardian partner"));
            With(f => f.HealthProfessional, HealthProfessionalBuilder.NewValid());
            With(f => f.PaymentDetails, PaymentDetailsBuilder.NewValid());
            With(f => f.Evidence, EvidenceBuilder.NewValid());
            With(f => f.Declaration, DeclarationBuilder.NewValid());

            With(f => f.Started, DomainRegistry.NowUtc() - TimeSpan.FromHours(24));
            With(f => f.Completed, DomainRegistry.NowUtc());
            With(f => f.UserId, _instance.ApplicantDetails?.EmailAddress);
            VerifyConsistent(_instance);

            if (!markAsCompleted)
            {
                With(f => f.Completed, null);
            }

            return(this);
        }
        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 NextSectionClearsSkippedSections()
        {
            var form = new BestStartGrantBuilder("form")
                       .With(f => f.ApplicantDetails, ApplicantDetailsBuilder.NewValid(ad => ad.Under16(TestNowUtc.Value)))
                       .With(f => f.ApplicantBenefits, BenefitsBuilder.NewWithBenefit())
                       .With(f => f.Declaration, DeclarationBuilder.NewValid())
                       .Insert();

            form.AddExistingChildren(ExistingChildrenBuilder.NewValid());

            form = Repository.Load <BestStartGrant>(form.Id);

            form.Declaration.Should().NotBeNull("should not be overwritten by moving to the next section");
            form.ApplicantBenefits.Should().BeNull("intermediate 'ApplicantBenefits' section should be cleared based on answers");
        }
Ejemplo n.º 6
0
        public void Execute_StoresBenefitsDetails()
        {
            var existingForm = new BestStartGrantBuilder("form123")
                               .Insert();

            existingForm.GuardianPartnerBenefits.Should().BeNull("no data stored before executing command");

            var cmd = new AddGuardianPartnerBenefits
            {
                FormId = "form123",
                GuardianPartnerBenefits = BenefitsBuilder.NewWithBenefit(),
            };

            cmd.Execute();

            var updatedForm = Repository.Load <BestStartGrant>("form123");

            updatedForm.GuardianPartnerBenefits.Should().NotBeNull();
            updatedForm.GuardianPartnerBenefits.HasIncomeSupport.Should().Be(cmd.GuardianPartnerBenefits.HasIncomeSupport);
        }
        public void RequiresGuardianPartnerBenefits()
        {
            var form = new BestStartGrantBuilder("form")
                       .With(f => f.GuardianBenefits, null)
                       .Value();

            Navigation.RequiresGuardianPartnerBenefits(form).Should().BeFalse("guardian partner benefits not required if guardian benefits not asked");

            Builder.Modify(form).With(f => f.GuardianBenefits, BenefitsBuilder.NewWithBenefit());

            Navigation.RequiresGuardianPartnerBenefits(form).Should().BeFalse("guardian partner benefits not required if guardian benefits positive");

            form.GuardianBenefits.None();

            Navigation.RequiresGuardianPartnerBenefits(form).Should().BeTrue("guardian partner benefits required if guardian benefits asked but answered 'no'");

            form.GuardianBenefits.Unknown();

            Navigation.RequiresGuardianPartnerBenefits(form).Should().BeTrue("guardian partner benefits required if guardian benefits asked but answered 'don't know'");
        }
        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");
        }
 protected void GuardianPartnerBenefitsShouldBeInvalid(BestStartGrant form, Action <Benefits> mutator)
 {
     ShouldBeInvalid(() => form.AddGuardianPartnerBenefits(BenefitsBuilder.NewWithBenefit(mutator)));
 }
Ejemplo n.º 12
0
 public void Construct(BenefitsBuilder benefitsBuilder)
 {
     benefitsBuilder.BuildAddBenefits();
 }
 protected void ApplicantBenefitsShouldBeInvalid(BestStartGrant form, Action <Benefits> mutator)
 {
     ShouldBeInvalid(() => form.AddApplicantBenefits(BenefitsBuilder.NewWithBenefit(mutator)));
 }