示例#1
0
        public async Task Validate_GivenScenario_ExpectedFlagsShouldBePresent(bool hasMultipleOfFacility, bool organisationHasOtherFacilityType, bool organisationHasAssociatedScheme,
                                                                              bool organisationHasOtherEntityOfSameType, bool organisationHasReturns, bool aatfHasReturnData, bool expectedToDeleteAatf, bool expectedToDeleteOrganisation)
        {
            var organisation  = Organisation.CreatePartnership("trading");
            var aatfId        = fixture.Create <Guid>();
            var aatfIdForAatf = fixture.Create <Guid>();
            var aatf          = A.Fake <Aatf>();

            A.CallTo(() => aatf.Organisation).Returns(organisation);
            A.CallTo(() => aatf.FacilityType).Returns(FacilityType.Aatf);
            A.CallTo(() => aatf.Id).Returns(aatfId);
            A.CallTo(() => aatf.AatfId).Returns(aatfIdForAatf);
            var canOrganisationBeDeletedFlags = new CanOrganisationBeDeletedFlags();

            if (hasMultipleOfFacility)
            {
                canOrganisationBeDeletedFlags |= CanOrganisationBeDeletedFlags.HasMultipleOfFacility;
            }

            if (organisationHasAssociatedScheme)
            {
                canOrganisationBeDeletedFlags |= CanOrganisationBeDeletedFlags.HasScheme;
            }

            if (organisationHasReturns)
            {
                canOrganisationBeDeletedFlags |= CanOrganisationBeDeletedFlags.HasReturns;
            }

            if (organisationHasOtherFacilityType)
            {
                canOrganisationBeDeletedFlags |= CanOrganisationBeDeletedFlags.HasAe;
            }

            A.CallTo(() => aatfDataAccess.GetDetails(aatfId)).Returns(aatf);
            A.CallTo(() => aatfDataAccess.HasAatfData(aatfId)).Returns(aatfHasReturnData);
            A.CallTo(() => getOrganisationDeletionStatus.Validate(aatf.Organisation.Id, aatf.ComplianceYear, aatf.FacilityType)).Returns(canOrganisationBeDeletedFlags);
            A.CallTo(() => aatfDataAccess.HasAatfOrganisationOtherAeOrAatf(aatf)).Returns(organisationHasOtherEntityOfSameType);
            A.CallTo(() => aatfDataAccess.IsLatestAatf(aatf.Id, aatfIdForAatf)).Returns(true);

            var result = await getAatfDeletionStatus.Validate(aatfId);

            if (expectedToDeleteAatf)
            {
                result.Should().HaveFlag(CanAatfBeDeletedFlags.CanDelete);
            }
            else
            {
                result.Should().NotHaveFlag(CanAatfBeDeletedFlags.CanDelete);
            }

            if (expectedToDeleteOrganisation)
            {
                result.Should().HaveFlag(CanAatfBeDeletedFlags.CanDeleteOrganisation);
            }
            else
            {
                result.Should().NotHaveFlag(CanAatfBeDeletedFlags.CanDeleteOrganisation);
            }
        }
示例#2
0
        public async Task <CanOrganisationBeDeletedFlags> Validate(Guid organisationId, int year, FacilityType facilityType)
        {
            var result = new CanOrganisationBeDeletedFlags();

            if (await organisationDataAccess.HasReturns(organisationId, year))
            {
                result |= CanOrganisationBeDeletedFlags.HasReturns;
            }

            if (await organisationDataAccess.HasActiveUsers(organisationId))
            {
                result |= CanOrganisationBeDeletedFlags.HasActiveUsers;
            }

            if (await organisationDataAccess.HasScheme(organisationId))
            {
                result |= CanOrganisationBeDeletedFlags.HasScheme;
            }

            if (await organisationDataAccess.HasFacility(organisationId, FacilityType.Aatf))
            {
                result |= CanOrganisationBeDeletedFlags.HasAatf;
            }

            if (await organisationDataAccess.HasFacility(organisationId, FacilityType.Ae))
            {
                result |= CanOrganisationBeDeletedFlags.HasAe;
            }

            if (await organisationDataAccess.HasMultipleOfEntityFacility(organisationId, facilityType))
            {
                result |= CanOrganisationBeDeletedFlags.HasMultipleOfFacility;
            }

            return(result);
        }
示例#3
0
 public AatfDeletionData(CanOrganisationBeDeletedFlags canOrganisationBeDeletedFlags,
                         CanAatfBeDeletedFlags canAatfBeDeletedFlags)
 {
     CanOrganisationBeDeletedFlags = canOrganisationBeDeletedFlags;
     CanAatfBeDeletedFlags         = canAatfBeDeletedFlags;
 }