public void GivenTheCallerWantsToRecalculateEarnings()
 {
     _request = _fixture.Build <RecalculateEarningsRequest>()
                .With(x => x.IncentiveLearnerIdentifiers,
                      _fixture.CreateMany <IncentiveLearnerIdentifierDto>(5).ToList())
                .Create();
 }
예제 #2
0
        public void Then_The_Post_Url_Is_Correctly_Built(RecalculateEarningsRequest data)
        {
            var actual = new PostRecalculateEarningsRequest(data);

            actual.PostUrl.Should().Be($"earningsRecalculations");
            actual.Data.Should().BeEquivalentTo(data);
        }
예제 #3
0
        public async Task <IActionResult> RecalculateEarnings([FromBody] RecalculateEarningsRequest request)
        {
            try
            {
                await _mediator.Send(new RecalculateEarningsCommand(request));

                return(NoContent());
            }
            catch (HttpRequestContentException requestException)
            {
                return(BadRequest(requestException.ErrorContent));
            }
        }
예제 #4
0
        public async Task RecalculateEarnings(RecalculateEarningsRequest recalculateEarningsRequest)
        {
            var postRequest = new PostRecalculateEarningsRequest(recalculateEarningsRequest);

            var response = await _client.PostWithResponseCode <PostRecalculateEarningsRequest>(postRequest);

            if (ApiResponseErrorChecking.IsSuccessStatusCode(response.StatusCode))
            {
                return;
            }

            throw new HttpRequestContentException($"Response status code does not indicate success: {(int)response.StatusCode} ({response.StatusCode})", response.StatusCode, response.ErrorContent);
        }
        public async Task Then_Sends_Earnings_Recalculations_to_Mediator(
            RecalculateEarningsRequest request,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] ApprenticeshipIncentiveController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <RecalculateEarningsCommand>(c =>
                                                          c.RecalculateEarningsRequest.Equals(request)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(Unit.Value);

            var controllerResult = await controller.RecalculateEarnings(request) as NoContentResult;

            Assert.IsNotNull(controllerResult);
            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.NoContent);
        }
        public async Task Then_The_Api_Is_Called_With_The_Recalculate_Earnings_Request(
            RecalculateEarningsRequest request,
            [Frozen] Mock <IEmployerIncentivesApiClient <EmployerIncentivesConfiguration> > client,
            EmployerIncentivesService service
            )
        {
            client.Setup(x => x.PostWithResponseCode <PostRecalculateEarningsRequest>(
                             It.Is <PostRecalculateEarningsRequest>(
                                 c => c.PostUrl.Contains("earningsRecalculations")
                                 ))).ReturnsAsync(new ApiResponse <PostRecalculateEarningsRequest>(null, HttpStatusCode.NoContent, ""));

            await service.RecalculateEarnings(request);

            client.Verify(x => x.PostWithResponseCode <PostRecalculateEarningsRequest>(
                              It.Is <PostRecalculateEarningsRequest>(c => c.PostUrl.Contains("earningsRecalculations")
                                                                     )), Times.Once);
        }
 public RecalculateEarningsCommand(RecalculateEarningsRequest request)
 {
     RecalculateEarningsRequest = request;
 }