public async void EfetuarPagamento_DeveRetornarItem() { // Arrange var pagamentoService = new Mock <IPagamentoService>(); var pagamentoDapperRepository = new Mock <IPagamentoDapperRepository>(); var mapper = new Mapper(configuration); var unitOfWork = new Mock <IUnitOfWork>(); var notificador = new Mock <INotificador>(); var pagamentoEsperado = new Pagamento(2, 5); var pagamentoInputDto = new PagamentoInputDTO { ValorPagamento = 2, ValorPagoCliente = 5 }; pagamentoService.Setup(service => service.ReceberPagamento(2, 5)) .ReturnsAsync(pagamentoEsperado); notificador.Setup(n => n.TemNotificacao()).Returns(false); var pagamentoAppService = new PagamentoAppService(pagamentoService.Object, pagamentoDapperRepository.Object, mapper, unitOfWork.Object, notificador.Object); // Act var pagamentoDto = await pagamentoAppService.EfetuarPagamento(pagamentoInputDto); // Assert Assert.NotNull(pagamentoDto); }
public async Task <ActionResult <PagamentoDTO> > Pagar(PagamentoInputDTO pagamentoDTO) { if (!ModelState.IsValid) { return(CustomResponse(ModelState)); } var troco = await _pagamentoAppService.EfetuarPagamento(pagamentoDTO); return(CustomResponse(troco)); }
public async Task <PagamentoDTO> EfetuarPagamento(PagamentoInputDTO pagamentoInputDTO) { var pagamentoRecebido = await _pagamentoService.ReceberPagamento(pagamentoInputDTO.ValorPagamento, pagamentoInputDTO.ValorPagoCliente); if (!Commit()) { return(null); } var retorno = _mapper.Map <PagamentoDTO>(pagamentoRecebido); return(retorno); }