Beispiel #1
0
        public async Task ShouldEndReclaim()
        {
            var package = TestDataHelper.CreateCarePackage(packageType: PackageType.ResidentialCare,
                                                           status: PackageStatus.Approved);
            var coreCost = TestDataHelper.CreateCarePackageDetail(package.Id, PackageDetailType.CoreCost);

            package.Details.Add(coreCost);
            package.Reclaims.Add(TestDataHelper.CreateCarePackageReclaim(package.Id, type: ReclaimType.CareCharge,
                                                                         subType: ReclaimSubType.CareChargeProvisional, collector: ClaimCollector.Supplier,
                                                                         startDate: coreCost.StartDate, endDate: coreCost.EndDate, cost: 10M));
            package = _generator.CreateCarePackage(package);

            var reclaim = package.Reclaims.First();

            var endDate = DateTimeOffset.UtcNow;

            var response = await _fixture.RestClient
                           .PutAsync <CarePackageReclaimResponse>(
                $"api/v1/care-packages/{package.Id}/reclaims/care-charges/{reclaim.Id}/end",
                new CarePackageReclaimEndRequest { EndDate = endDate });

            reclaim = _fixture.DatabaseContext.CarePackageReclaims.First(r => r.Id == reclaim.Id);

            response.Message.StatusCode.Should().Be(HttpStatusCode.OK);
            response.Content.Status.Should().Be(ReclaimStatus.Ended);

            reclaim.Status.Should().Be(ReclaimStatus.Ended);
            reclaim.EndDate.Value.Date.Should().Be(endDate.Date);
        }
        public CancelCarePackageReclaimsUseCaseTests()
        {
            using var localFixture = new MockWebApplicationFactory();

            var carePackage = localFixture.Generator.CreateCarePackage();

            _reclaim = TestDataHelper.CreateCarePackageReclaim(carePackage.Id, ClaimCollector.Hackney,
                                                               ReclaimType.CareCharge, ReclaimSubType.CareChargeProvisional);
            _reclaim.Status = ReclaimStatus.Active;

            carePackage.Reclaims.Add(_reclaim);

            _dbManager = new Mock <IDatabaseManager>();
            var historyGateway = new Mock <ICarePackageHistoryGateway>();
            var gateway        = new Mock <ICarePackageReclaimGateway>();

            _carePackageGateway = new Mock <ICarePackageGateway>();

            gateway
            .Setup(g => g.GetAsync(_reclaim.Id, It.IsAny <bool>()))
            .ReturnsAsync(_reclaim);

            _carePackageGateway
            .Setup(g => g.GetPackageAsync(It.IsAny <Guid>(), It.IsAny <PackageFields>(), It.IsAny <bool>()))
            .ReturnsAsync(carePackage);

            _useCase = new CancelCareChargeUseCase(gateway.Object, _dbManager.Object, historyGateway.Object, _carePackageGateway.Object);
        }
        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);
        }
Beispiel #4
0
 public static CarePackage AddCareChargeFor13PlusWeeks(this CarePackage package, decimal?cost = null, ClaimCollector?collector = null, DateTimeOffset?startDate = null, DateTimeOffset?endDate = null)
 {
     package.Reclaims.Add(TestDataHelper.CreateCarePackageReclaim(package.Id, ReclaimType.CareCharge, ReclaimSubType.CareCharge13PlusWeeks, collector, cost, startDate, endDate));
     return(package);
 }
Beispiel #5
0
 public static CarePackage AddFncPayment(this CarePackage package, decimal?cost = null, ClaimCollector?collector = null, DateTimeOffset?startDate = null, DateTimeOffset?endDate = null)
 {
     package.Reclaims.Add(TestDataHelper.CreateCarePackageReclaim(package.Id, ReclaimType.Fnc, ReclaimSubType.FncPayment, collector, cost, startDate, endDate));
     return(package);
 }