Example #1
0
        public async Task <IActionResult> GetPayment(Guid paymentId)
        {
            var query  = new GetPaymentByIdQuery(paymentId);
            var result = await _mediator.Send(query);

            return(result != null ? (IActionResult)Ok(result) : NotFound());
        }
Example #2
0
        public async Task ShouldFindAndReturnData()
        {
            var cardDetails = new CardDetails(
                "Jim",
                "Jimson",
                "1234-5678-8765-4321",
                10,
                20,
                321);
            var payment = new Payment(Guid.NewGuid(), cardDetails, Currency.GBP, 123M);

            var paymentResult = Result.Ok(payment);

            _mockPaymentHistoryRepository.Setup(p => p.GetPaymentById(It.IsAny <Guid>())).ReturnsAsync(paymentResult);

            var sut = new GetPaymentByIdQueryHandler(_mockPaymentHistoryRepository.Object, _mockMetrics.Object);

            var query = new GetPaymentByIdQuery(Guid.NewGuid());

            var result = await sut.Handle(query, default);

            _mockPaymentHistoryRepository.Verify(p => p.GetPaymentById(It.IsAny <Guid>()), Times.Once());
            Assert.True(result.IsSuccess);
            Assert.True(result.Value.Amount == 123M);
        }
        public async Task <IActionResult> GetId(int id)
        {
            var command = new GetPaymentByIdQuery(id);
            var result  = await _mediatr.Send(command);

            return(result != null ? (IActionResult)Ok(result) : NotFound(new { Message = "Notification not found" }));
        }
Example #4
0
        public async Task <ActionResult> Get(int id)
        {
            var command = new GetPaymentByIdQuery(id);
            var result  = await _mediatr.Send(command);

            return(result != null ? (ActionResult)Ok(new { Message = "success", data = result }) : NotFound(new { Message = "not found" }));
        }
Example #5
0
        public async Task ShouldReturnFailureIfCannotFindPaymentById()
        {
            var paymentResult = Result.Failure <Payment>(PaymentRepositoryErrors.PaymentRetrievalFailed);

            _mockPaymentHistoryRepository.Setup(p => p.GetPaymentById(It.IsAny <Guid>())).ReturnsAsync(paymentResult);

            var sut = new GetPaymentByIdQueryHandler(_mockPaymentHistoryRepository.Object, _mockMetrics.Object);

            var query = new GetPaymentByIdQuery(Guid.NewGuid());

            var result = await sut.Handle(query, default);

            Assert.True(result.IsFailure);
        }
        public async Task Handle_ShouldReturnNull_WhenPaymentDoesNotExists()
        {
            var getPaymentByIdHandler = CreateGetPaymentByIdHandler();

            mockEfRepository.Setup(x => x.GetByIdAsync <Payment>(It.IsAny <Guid>()))
            .ReturnsAsync(default(Payment));

            var request = new GetPaymentByIdQuery(Guid.NewGuid());

            var response = await getPaymentByIdHandler.Handle(request, default);

            response.ShouldBeNull();

            mockEfRepository.Verify(x => x.GetByIdAsync <Payment>(It.IsAny <Guid>()), Times.AtLeastOnce);
        }
Example #7
0
 public PaymentController(
     IBankService bankService,
     PaymentMapper paymentMapper,
     AddEntityCommand addEntityCommand,
     GetPaymentByIdQuery getPaymentByIdQuery,
     PaymentViewModelBuilder paymentViewModelBuilder,
     GetAllPaymentsQuery getAllPaymentsQuery)
 {
     this.bankService             = bankService;
     this.paymentMapper           = paymentMapper;
     this.addEntityCommand        = addEntityCommand;
     this.getPaymentByIdQuery     = getPaymentByIdQuery;
     this.paymentViewModelBuilder = paymentViewModelBuilder;
     this.getAllPaymentsQuery     = getAllPaymentsQuery;
 }
        public async Task HandleGetPaymentByIdQuery_ReturnsFailurePaymentResponse_WhenPaymentNotFound()
        {
            // Arrange
            var id      = new Guid().ToString();
            var request = new GetPaymentByIdQuery(new Guid().ToString());

            var paymentResponse = CreateFailurePaymentResponse(id);

            A.CallTo(() => _paymentsService.GetAsync(request.Id)).Returns <Payment>(null);

            // Act
            var response = await _sut.Handle(request, new CancellationToken());

            // Assert
            Assert.AreEqual(paymentResponse.Id, response.Id);
            Assert.AreEqual(paymentResponse.Status, response.Status);
            Assert.AreEqual(paymentResponse.Reason, response.Reason);
        }
        public async Task Handle_ShouldReturnPayment_WhenIdExistsForAPayment()
        {
            var paymentId             = Guid.NewGuid();
            var getPaymentByIdHandler = CreateGetPaymentByIdHandler();

            mockEfRepository.Setup(x => x.GetByIdAsync <Payment>(It.IsAny <Guid>()))
            .ReturnsAsync(new Payment
            {
                Id = paymentId, CardNumber = "1234-2345-3456-4567", TransactionStatus = "Completed"
            });

            var request = new GetPaymentByIdQuery(paymentId);

            var response = await getPaymentByIdHandler.Handle(request, default);

            response.ShouldNotBeNull();

            mockEfRepository.Verify(x => x.GetByIdAsync <Payment>(It.IsAny <Guid>()), Times.AtLeastOnce);
        }
Example #10
0
        public async Task <ActionResult <PaymentModel> > GetProdutos(int id)
        {
            try
            {
                _logger.LogInformation($"Veeash id: {id}");
                //validation
                var command = new GetPaymentByIdQuery {
                    Id = id
                };
                var response = await _mediator.Send(command);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Poota que paril, vc Errrou! {ex.Message}");
                return(BadRequest(ex.Message));
            }
        }
        public async Task HandleGetPaymentByIdQuery_ReturnsSuccessfulPaymentResponse_WhenPaymentFoundSuccessfully()
        {
            // Arrange
            var id      = new Guid().ToString();
            var request = new GetPaymentByIdQuery(new Guid().ToString());
            var payment = CreateFakePayment(id);

            var paymentResponse = CreateSuccessfulPaymentResponse(id);

            A.CallTo(() => _paymentsService.GetAsync(request.Id)).Returns(payment);
            A.CallTo(() => _paymentMapper.Map(payment)).Returns(paymentResponse);


            // Act
            var response = await _sut.Handle(request, new CancellationToken());

            // Assert
            Assert.AreEqual(paymentResponse, response);
        }
Example #12
0
        public async Task <IActionResult> GetById(Guid id)
        {
            var query  = new GetPaymentByIdQuery(id);
            var result = await mediator.Send(query);

            using (logger.BeginScope(new Dictionary <string, object>
            {
                { "paymentId", id }
            }))
            {
                if (result != null)
                {
                    logger.LogInformation("Payment fetched.");
                    return(Ok(result));
                }

                logger.LogInformation("Payment was not found");

                return(NotFound());
            }
        }