public async Task And_Then_No_Apprentice_Is_Returned_From_Mediator(
            int pledgeApplicationId,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] PledgeApplicationsController controller)
        {
            var controllerResult = await controller.Get(pledgeApplicationId) as NotFoundResult;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.NotFound);
        }
        public async Task And_Exception_Then_Returns_Bad_Request(
            int pledgeApplicationId,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] PledgeApplicationsController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.IsAny <GetPledgeApplicationQuery>(),
                       It.IsAny <CancellationToken>()))
            .Throws <InvalidOperationException>();

            var controllerResult = await controller.Get(pledgeApplicationId) as BadRequestResult;

            controllerResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
        }
        public async Task Then_Gets_PledgeApplication_From_Mediator(
            int pledgeApplicationId,
            GetPledgeApplicationResult mediatorResult,
            [Frozen] Mock <IMediator> mockMediator,
            [Greedy] PledgeApplicationsController controller)
        {
            mockMediator
            .Setup(mediator => mediator.Send(
                       It.Is <GetPledgeApplicationQuery>(x => x.PledgeApplicationId == pledgeApplicationId),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(mediatorResult);

            var controllerResult = await controller.Get(pledgeApplicationId) as ObjectResult;

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

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