public void ShouldFailWhenFirstCareChargeStartLessThanPackageStartDate(ReclaimSubType subtype, int daysDelta)
        {
            var request = CreateUpsertRequest(
                (subtype, _coreCost.StartDate.AddDays(daysDelta), null));

            VerifyFailedRequest(request, "First care charge start date must be greater or equal to package start date");
        }
        public async Task ShouldAdjustOngoingCareChargeEndDateToFinitePackageEndDate(ReclaimSubType subtype)
        {
            var request = CreateUpsertRequest((subtype, _coreCost.StartDate, null));

            await _useCase.ExecuteAsync(_package.Id, request);

            _package.Reclaims
            .Single(r => r.SubType == subtype)
            .EndDate.Should().Be(_coreCost.EndDate);
        }
        public CarePackageReclaim CreateCarePackageReclaim(
            CarePackage package, ClaimCollector collector,
            ReclaimType type, ReclaimSubType subType = ReclaimSubType.CareCharge13PlusWeeks)
        {
            var reclaim = TestDataHelper.CreateCarePackageReclaim(package.Id, collector, type, subType);

            _context.CarePackageReclaims.Add(reclaim);
            _context.SaveChanges();

            return(reclaim);
        }
Пример #4
0
 public static CarePackageReclaim CreateCarePackageReclaim(Guid packageId, ClaimCollector collector,
                                                           ReclaimType type, ReclaimSubType subType)
 {
     return(new Faker <CarePackageReclaim>()
            .RuleFor(r => r.CarePackageId, packageId)
            .RuleFor(r => r.Cost,
                     f => Math.Round(f.Random.Decimal(0m, 1000m), 2)) // Workaround to avoid precision loss in SQLite)
            .RuleFor(r => r.StartDate, f => f.Date.Past().Date)
            .RuleFor(r => r.EndDate, f => f.Date.Future().Date)
            .RuleFor(r => r.Description, f => f.Lorem.Paragraph())
            .RuleFor(r => r.ClaimCollector, collector)
            .RuleFor(r => r.Type, type)
            .RuleFor(r => r.Status, ReclaimStatus.Active)
            .RuleFor(r => r.SubType, subType));
 }
 private void AddExistingCareCharge(ReclaimSubType subType, DateTimeOffset startDate, DateTimeOffset?endDate)
 {
     _package.Reclaims.Add(new CarePackageReclaim
     {
         Id             = Guid.NewGuid(),
         CarePackageId  = _package.Id,
         Type           = ReclaimType.CareCharge,
         SubType        = subType,
         Status         = ReclaimStatus.Active,
         ClaimCollector = ClaimCollector.Supplier,
         Cost           = 1m,
         StartDate      = startDate,
         EndDate        = endDate
     });
 }
Пример #6
0
 public static CarePackageReclaim CreateCarePackageReclaim(
     Guid packageId, ReclaimType type, ReclaimSubType subType, ClaimCollector?collector,
     decimal?cost, DateTimeOffset?startDate, DateTimeOffset?endDate)
 {
     return(new Faker <CarePackageReclaim>()
            .RuleFor(r => r.Id, Guid.NewGuid)
            .RuleFor(r => r.CarePackageId, packageId)
            .RuleFor(r => r.Cost, f => cost ?? f.Random.Decimal(0m, 1000m).Round(2))
            .RuleFor(r => r.StartDate, f => startDate ?? f.Date.Past(1, DateTime.Now.AddDays(-1)).Date)
            .RuleFor(d => d.EndDate,
                     f => endDate != DateTimeOffset.MaxValue // use DateTimeOffset.MaxValue to create an ongoing reclaim
                 ? endDate ?? f.Date.Future(1, DateTime.Now.AddDays(1)).Date
                 : null as DateTimeOffset?)
            .RuleFor(r => r.Description, f => f.Lorem.Paragraph())
            .RuleFor(r => r.ClaimCollector, f => collector ?? f.PickRandom <ClaimCollector>())
            .RuleFor(r => r.Type, type)
            .RuleFor(r => r.Status, ReclaimStatus.Active)
            .RuleFor(r => r.SubType, subType));
 }
Пример #7
0
        private static CarePackageReclaim CreateReclaimEntity(CarePackageReclaimCreationDomain requestedReclaim, ReclaimSubType subType)
        {
            var fncPayment = requestedReclaim.ToEntity();

            fncPayment.Type       = ReclaimType.Fnc;
            fncPayment.SubType    = subType;
            fncPayment.Status     = ReclaimStatus.Active;
            fncPayment.Subjective = fncPayment.SubType == ReclaimSubType.FncPayment ? SubjectiveConstants.FncPaymentSubjectiveCode : SubjectiveConstants.FncReclaimSubjectiveCode;

            return(fncPayment);
        }
        public void ShouldFailWhenLastCareChargeEndDateExceedsPackageEndDate(ReclaimSubType subtype)
        {
            var request = CreateUpsertRequest((subtype, _coreCost.StartDate, _coreCost.EndDate?.AddDays(1)));

            VerifyFailedRequest(request, "Last care charge end date expected to be less than or equal to");
        }
        public void ShouldSaveWhenFirstCareChargeStartDateGreaterOrEqualThanPackageStartDate(ReclaimSubType subtype, int daysDelta)
        {
            var request = CreateUpsertRequest(
                (subtype, _coreCost.StartDate.AddDays(daysDelta), null));

            _useCase.ExecuteAsync(_package.Id, request);

            _package.Reclaims.Should().ContainSingle(r => r.SubType == subtype);
            _dbManager.VerifySaved();
        }