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_a_bad_request_response_is_returned_if_the_inner_api_call_is_not_successful()
        {
            // Arrange
            var fixture   = new Fixture();
            var mediator  = new Mock <IMediator>();
            var exception = new HttpRequestContentException("API error", HttpStatusCode.BadRequest, "Invalid request");

            mediator.Setup(x => x.Send(It.IsAny <RecalculateEarningsCommand>(), It.IsAny <CancellationToken>())).Throws(exception);

            var controller = new ApprenticeshipIncentiveController(mediator.Object);
            var request    = fixture.Create <RecalculateEarningsRequest>();

            // Act
            var result = await controller.RecalculateEarnings(request) as BadRequestObjectResult;

            // Assert
            result.Should().NotBeNull();
            result.Value.Should().Be(exception.ErrorContent);
        }
Esempio n. 3
0
        public async Task Then_Gets_ApprenticeshipIncentives_From_Mediator(
            long accountId,
            long accountLegalEntityId,
            GetApprenticeshipIncentivesResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] ApprenticeshipIncentiveController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetApprenticeshipIncentivesQuery>(c =>
                                                                c.AccountId.Equals(accountId) && c.AccountLegalEntityId.Equals(accountLegalEntityId)),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.GetApprenticeshipIncentives(accountId, accountLegalEntityId) as ObjectResult;

            Assert.IsNotNull(controllerResult);
            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = controllerResult.Value as ApprenticeshipIncentiveDto[];

            Assert.IsNotNull(model);
            model.Should().BeEquivalentTo(mediatorResult.ApprenticeshipIncentives);
        }