Exemple #1
0
        public async Task ShouldRaiseAnErrorWhenProvisionalEndDateOutOfRangePackageDetailDate()
        {
            var package        = _generator.CreateCarePackage(PackageType.NursingCare);
            var packageDetails = _generator.CreateCarePackageDetails(package, 1, PackageDetailType.CoreCost);


            var request = new CareChargeReclaimCreationRequest()
            {
                CarePackageId  = package.Id,
                ClaimCollector = ClaimCollector.Supplier,
                Cost           = 90M,
                SubType        = ReclaimSubType.CareChargeProvisional,
                Description    = null,
                ClaimReason    = null
            };

            request.StartDate = packageDetails.First().StartDate.AddDays(10);
            var coreCostDetailEndDate = packageDetails.First().EndDate;

            if (coreCostDetailEndDate != null)
            {
                var provisionalCareChargeEndDate = (DateTimeOffset)coreCostDetailEndDate;
                request.EndDate = provisionalCareChargeEndDate.AddDays(+10);
            }

            var response = await _fixture.RestClient
                           .PostAsync <CarePackageReclaimResponse>($"api/v1/care-packages/{request.CarePackageId}/reclaims/care-charges/provisional", request);

            response.Message.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
        }
Exemple #2
0
        public async Task ShouldUpdateExistingProvisionalCareCharge()
        {
            var package = _generator.CreateCarePackage();

            _generator.CreateCarePackageDetails(package, 1, PackageDetailType.CoreCost);

            var provisionalCharge = _generator
                                    .CreateCarePackageReclaim(package, ClaimCollector.Supplier, ReclaimType.CareCharge, ReclaimSubType.CareChargeProvisional);

            var request = new CareChargeReclaimCreationRequest
            {
                Cost           = provisionalCharge.Cost + 12.34m,
                ClaimCollector = ClaimCollector.Supplier,
                SubType        = ReclaimSubType.CareChargeProvisional,
                CarePackageId  = package.Id,
                StartDate      = DateTimeOffset.UtcNow.AddDays(-1),
                EndDate        = DateTimeOffset.UtcNow.AddDays(2),
                Description    = "test",
                ClaimReason    = "test"
            };

            var response = await _fixture.RestClient
                           .SubmitFormAsync <CarePackageReclaimResponse>(
                $"api/v1/care-packages/{request.CarePackageId}/reclaims/care-charges", request);

            var reclaims = _fixture.DatabaseContext.CarePackageReclaims
                           .Where(r => r.CarePackageId == package.Id).ToList();

            response.Message.StatusCode.Should().Be(HttpStatusCode.OK);
            reclaims.Count.Should().Be(1);
            reclaims.Should().ContainSingle(r => r.Cost == request.Cost);
        }
Exemple #3
0
        public async Task ShouldCreateProvisionalCareCharge()
        {
            var package        = _generator.CreateCarePackage(PackageType.NursingCare);
            var packageDetails = _generator.CreateCarePackageDetails(package, 1, PackageDetailType.CoreCost);


            var request = new CareChargeReclaimCreationRequest()
            {
                CarePackageId  = package.Id,
                ClaimCollector = ClaimCollector.Supplier,
                Cost           = 90M,
                SubType        = ReclaimSubType.CareChargeProvisional,
                StartDate      = packageDetails.First().StartDate,
                EndDate        = packageDetails.First().EndDate,
                Description    = null,
                ClaimReason    = null
            };

            var response = await _fixture.RestClient
                           .PostAsync <CarePackageReclaimResponse>($"api/v1/care-packages/{request.CarePackageId}/reclaims/care-charges/provisional", request);

            response.Message.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemple #4
0
        private async Task <TestResponse <CarePackageReclaimResponse> > CreateCareChargesReclaim(CareChargeReclaimCreationRequest request)
        {
            var response = await _fixture.RestClient
                           .PostAsync <CarePackageReclaimResponse>($"api/v1/care-packages/{request.CarePackageId}/reclaims/care-charges", request);

            return(response);
        }
        public async Task <ActionResult <CarePackageReclaimResponse> > CreateProvisionalCareChargeReclaim(CareChargeReclaimCreationRequest careChargeReclaimCreationRequest)
        {
            var carePackageReclaimResponse = await _createProvisionalCareChargeUseCase.CreateProvisionalCareCharge(careChargeReclaimCreationRequest.ToDomain(), ReclaimType.CareCharge);

            return(Ok(carePackageReclaimResponse));
        }
Exemple #6
0
 public static CareChargeReclaimCreationDomain ToCareChargeDomain(this CareChargeReclaimCreationRequest input)
 {
     return(_mapper.Map <CareChargeReclaimCreationDomain>(input));
 }
Exemple #7
0
 public static CarePackageReclaimCreationDomain ToDomain(this CareChargeReclaimCreationRequest carePackageReclaimCreationRequest)
 {
     return(_mapper.Map <CarePackageReclaimCreationDomain>(carePackageReclaimCreationRequest));
 }