예제 #1
0
        public async Task And_TransferDetailsForSender_Succeeds_Then_Api_Called_To_Update(
            Mock <ICommitmentsApiClient> mockCommitmentsApiClient,
            Mock <ILogger <TransferRequestController> > mockLogger,
            UpdateTransferApprovalForSenderRequest request,
            TransferRequestForSenderViewModel viewModel,
            [Frozen] Mock <IModelMapper> mockMapper)
        {
            mockMapper
            .Setup(mapper => mapper.Map <UpdateTransferApprovalForSenderRequest>(viewModel))
            .ReturnsAsync(request);

            mockCommitmentsApiClient
            .Setup(r => r.UpdateTransferRequestForSender(
                       It.IsAny <long>(),
                       It.IsAny <long>(),
                       It.IsAny <long>(),
                       It.IsAny <UpdateTransferApprovalForSenderRequest>(),
                       It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask);

            TransferRequestController controller = new TransferRequestController(mockCommitmentsApiClient.Object,
                                                                                 mockLogger.Object, mockMapper.Object);

            var result = (await controller.TransferDetailsForSender(viewModel)) as RedirectToActionResult;

            mockCommitmentsApiClient.Verify(m => m.UpdateTransferRequestForSender(
                                                It.IsAny <long>(),
                                                It.IsAny <long>(),
                                                It.IsAny <long>(),
                                                It.IsAny <UpdateTransferApprovalForSenderRequest>(),
                                                It.IsAny <CancellationToken>()), Times.Once);
        }
예제 #2
0
        public async Task And_TransferDetailsForSender_Fails_Then_Redirect_To_Error(
            TransferRequestForSenderViewModel viewModel,
            [Frozen] Mock <IModelMapper> mockMapper,
            [Greedy] TransferRequestController controller)
        {
            mockMapper
            .Setup(mapper => mapper.Map <UpdateTransferApprovalForSenderRequest>(viewModel))
            .ThrowsAsync(new Exception("Some error"));

            var result = (await controller.TransferDetailsForSender(viewModel)) as RedirectToActionResult;

            result.Should().NotBeNull();
            result.ActionName.Should().Be("Error");
            result.ControllerName.Should().Be("Error");
            result.RouteValues.Should().BeNull();
        }
예제 #3
0
        public async Task And_TransferDetailsForSender_Succeeds_Then_Redirect_To_Confirmation(
            UpdateTransferApprovalForSenderRequest request,
            TransferRequestForSenderViewModel viewModel,
            [Frozen] Mock <IModelMapper> mockMapper,
            [Greedy] TransferRequestController controller)
        {
            mockMapper
            .Setup(mapper => mapper.Map <UpdateTransferApprovalForSenderRequest>(viewModel))
            .ReturnsAsync(request);

            var result = (await controller.TransferDetailsForSender(viewModel)) as RedirectToActionResult;

            result.Should().NotBeNull();
            result.ActionName.Should().Be("TransferConfirmation");
            result.ControllerName.Should().Be("TransferRequest");
        }
        public async Task Then_Returns_View_With_Correct_Model(
            TransferRequestRequest request,
            TransferRequestForReceiverViewModel viewModel,
            [Frozen] Mock <IModelMapper> mockMapper,
            [Greedy] TransferRequestController controller)
        {
            mockMapper
            .Setup(mapper => mapper.Map <TransferRequestForReceiverViewModel>(request))
            .ReturnsAsync(viewModel);

            var result = await controller.TransferDetailsForReceiver(request) as ViewResult;

            result.ViewName.Should().BeNull();
            var model = result.Model as TransferRequestForReceiverViewModel;

            model.Should().BeSameAs(viewModel);
        }