public async Task EfetuaPagamento_Test() { //Given var mocker = new AutoMoqer(); var baseExternalMock = mocker.Create <GatewayExternalService>(); var Cartao = new AutoFaker <CartaoEntity>() .RuleFor(fake => fake.Bandeira, fake => PagamentoBandeiraEnum.MasterCard) .RuleFor(fake => fake.DataValidade, fake => fake.Date.Future(2)) .RuleFor(fake => fake.Tipo, fake => TipoCartaoEnum.Credito) .Generate(); var param = new AutoFaker <PagamentoEntity>() .RuleFor(fake => fake.StatusPagamento, fake => fake.PickRandom <StatusPagamentoEnum>()) .RuleFor(fake => fake.Cartao, fake => Cartao) .Generate(); var expectResponse = new GatewayDTO { IdPedido = param.IdPedido, StatusPagamento = StatusPagamentoEnum.Aprovado }; var response = new GatewayExternalDTO { StatusPagamento = StatusPagamentoEnum.Aprovado }; var externalContext = mocker.GetMock <IGatewayExternalContext>(); externalContext.Setup(e => e.EfetuarPagamentoCartao(It.IsAny <GatewayCartaoParam>())).ReturnsAsync(response).Verifiable(); //When var result = await baseExternalMock.EfetuaPagamento(param); //Then var comparison = new CompareLogic(); externalContext.Verify(mock => mock.EfetuarPagamentoCartao(It.IsAny <GatewayCartaoParam>()), Times.Once()); Assert.True(comparison.Compare(result, expectResponse).AreEqual); }
public async Task SinalizaStatusPagamento_Test() { //Given var mocker = new AutoMoqer(); var baseExternalMock = mocker.Create <DeliveryExternalService>(); var param = new GatewayDTO { IdPedido = Guid.NewGuid(), StatusPagamento = StatusPagamentoEnum.Aprovado }; var response = Task.Factory.StartNew(() => string.Empty); var externalContext = mocker.GetMock <IDeliveryExternalContext>(); externalContext.Setup(e => e.AtualizaStatusPagamento(It.IsAny <DeliveryExternalParam>())).Returns(response).Verifiable(); //When await baseExternalMock.SinalizaStatusPagamento(param); //Then var comparison = new CompareLogic(); externalContext.Verify(mock => mock.AtualizaStatusPagamento(It.IsAny <DeliveryExternalParam>()), Times.Once()); }
public async Task AddUsingRef_Test() { var mocker = new AutoMoqer(); var baseCommandMock = mocker.Create <PagamentoCommand>(); var param = new AutoFaker <CartaoParam>() .RuleFor(fake => fake.NumeroCartao, fake => "4539971947033886") .RuleFor(fake => fake.CodSeguranca, fake => "254") .RuleFor(fake => fake.DataValidade, fake => fake.Date.Future(2)) .RuleFor(fake => fake.Tipo, fake => TipoCartaoEnum.Credito) .Generate(); var returnGateway = new GatewayDTO { IdPedido = param.IdPedido, StatusPagamento = StatusPagamentoEnum.Aprovado }; var pagamentoResult = new AutoFaker <PagamentoEntity>().Generate(); var expectResponse = new List <string>(); var pagamentoRepoMock = mocker.GetMock <IPagamentoRepository>(); var gatewayMock = mocker.GetMock <IGatewayExternalService>(); var deliveryMock = mocker.GetMock <IDeliveryExternalService>(); pagamentoRepoMock.Setup(r => r.AddUsingRef(It.IsAny <PagamentoEntity>())).Returns(Task.Factory.StartNew(() => string.Empty)).Verifiable(); pagamentoRepoMock.Setup(r => r.GetByIDWithLoadRef(It.IsAny <Guid>())).ReturnsAsync(pagamentoResult).Verifiable(); deliveryMock.Setup(r => r.SinalizaStatusPagamento(It.IsAny <GatewayDTO>())).Returns(Task.Factory.StartNew(() => string.Empty)).Verifiable(); gatewayMock.Setup(r => r.EfetuaPagamento(It.IsAny <PagamentoEntity>())).ReturnsAsync(returnGateway).Verifiable(); //When var result = await baseCommandMock.ProcessarPagamento(param); //Then pagamentoRepoMock.Verify(mock => mock.AddUsingRef(It.IsAny <PagamentoEntity>()), Times.Exactly(2)); pagamentoRepoMock.Verify(mock => mock.GetByIDWithLoadRef(It.IsAny <Guid>()), Times.Once()); deliveryMock.Verify(mock => mock.SinalizaStatusPagamento(It.IsAny <GatewayDTO>()), Times.Once()); gatewayMock.Verify(mock => mock.EfetuaPagamento(It.IsAny <PagamentoEntity>()), Times.Once()); var comparison = new CompareLogic(); Assert.True(comparison.Compare(result, expectResponse).AreEqual); }
/// <summary> /// Returns the gateway object. /// </summary> /// <param name="GatewayID">Unique identifier of the gateway</param> /// <returns>Gateway Details</returns> public async Task <GatewayDTO> GatewayGet(long GatewayID) { GatewayDTO retVal = null; try { retVal = await _httpService.GetAsAsync <GatewayDTO>("GatewayGet", string.Format("GatewayID={0}", GatewayID), false); } catch (Exception ex) { return(retVal); } return(retVal); }
public async Task SinalizaStatusPagamento(GatewayDTO statusPagamento) { await _deliveryExternalContext.AtualizaStatusPagamento(statusPagamento.ConvertTo <DeliveryExternalParam>()); }