public static void Executar() { var pagamentroLogPadrao = new TransacaoService(new Logger()); pagamentroLogPadrao.RealizarTransacao(); var pagamentoLogCustomizado = new TransacaoService(new LogAdapter(new LogNetMasterService())); pagamentoLogCustomizado.RealizarTransacao(); }
public void TestDeveriaLancarExcecaoDeContaNaoEncontradaNoSaque() { var transacaoRepositoryMock = new Mock <ITransacaoRepository>(); var contaRepositoryMock = new Mock <IContaCorrenteRepository>(); contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult((IContaCorrente)null)); var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object); Assert.ThrowsAsync <ContaCorrenteNotFoundException>(async() => await transacaoService.SacarAsync(1, 1)); }
public static void Executar() { //TODO: Resolver com Injeção de Dependência.. var pagamentoLogPadrao = new TransacaoService(new Logger()); pagamentoLogPadrao.RealizarTransacao(); var pagamentoLogCustom = new TransacaoService(new LogAdapter(new LogNetMasterService())); pagamentoLogCustom.RealizarTransacao(); }
public void FazerTransacaoPagarAcimaIgualTotalVendaSucesso() { var mockTransacao = new Mock <ITrasacaoRepository>(); decimal totalVenda = 101.01M; decimal valorPago = 150.00M; var transacaoService = new TransacaoService(mockTransacao.Object); var transacaoResponse = transacaoService.MostrarMensagemTrocoInteligente(totalVenda, valorPago); Assert.IsTrue(transacaoResponse.Valido); }
public void FazerTransacaoValorPagoInferiorTotalVendaFalha() { var mockTransacao = new Mock <ITrasacaoRepository>(); decimal totalVenda = 105.42M; decimal valorPago = 90.10M; var transacaoService = new TransacaoService(mockTransacao.Object); var transacaoResponse = transacaoService.MostrarMensagemTrocoInteligente(totalVenda, valorPago); Assert.IsFalse(transacaoResponse.Valido); }
public string Index() { Eventos.LimparDados(); var pagamentoLogPadrao = new TransacaoService(_logger); pagamentoLogPadrao.RealizarTransacao(); var pagamentoLogCustom = new TransacaoService(new LogAdapter(_logNetMaster)); pagamentoLogCustom.RealizarTransacao(); return(Eventos.Imprimir()); }
public void TestDeveriaLancarExcecaoDeValorInvalidoNoDeposito(decimal valor) { IContaCorrente conta = new ContaCorrente(1, 0); var transacaoRepositoryMock = new Mock <ITransacaoRepository>(); var contaRepositoryMock = new Mock <IContaCorrenteRepository>(); contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult(conta)); var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object); Assert.ThrowsAsync <ValorDeCreditoInvalidoException>(async() => await transacaoService.DepositarAsync(1, valor)); }
public async void TestDeveriaTransferirCorretamente(decimal valor, decimal saldoInicialContaOrigem, decimal saldoFinalContaOrigem, decimal saldoInicialContaDestino, decimal saldoFinalContaDestino) { IContaCorrente contaOrigem = new ContaCorrente(1, saldoInicialContaOrigem); IContaCorrente contaDestino = new ContaCorrente(2, saldoInicialContaDestino); var transacaoRepositoryMock = new Mock <ITransacaoRepository>(); var contaRepositoryMock = new Mock <IContaCorrenteRepository>(); contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult(contaOrigem)); contaRepositoryMock.Setup(x => x.FindByIdAsync(2)).Returns(Task.FromResult(contaDestino)); var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object); var transacoes = await transacaoService.TransferirAsync(1, 2, valor); Assert.Equal(saldoFinalContaOrigem, contaOrigem.Saldo); Assert.Equal(saldoFinalContaDestino, contaDestino.Saldo); }
static void Main(string[] args) { /* OBS: Resolver por Injeção de dependencia */ var transacaoComLogPadrao = new TransacaoService(new Logger()); transacaoComLogPadrao.RealizarTransacao(); /* A classe TransacaoService não pode ser alterada, por n motivos e ela recebe a interface iLogger no seu construtor * para utilização do log customizado, deve criar uma classe de adaptação (LogAdapter) implementando a mesma interface iLogger, porém essa classe (LogAdapter) * vai usar a logCustomizado por baixo dos panos, para fazer a gravação do novo de um novo jeito. * Dessa maneira a classe TransacaoService não foi alterada, manteve seu funcionamento e estará utilizando um outro objeto para fazer uma coisa de outra forma */ var transacaoComLogPadronizado = new TransacaoService(new LogAdapter(new LoggerCustomizado())); transacaoComLogPadronizado.RealizarTransacao(); Console.ReadKey(); }
public async Task TestDeveriaSacarCorretamente(decimal saldoInicial, decimal valorSaque, decimal saldoPosSaque, decimal valorTarifa, decimal saldoPosTarifa) { IContaCorrente conta = new ContaCorrente(1, saldoInicial); var transacaoRepositoryMock = new Mock <ITransacaoRepository>(); var contaRepositoryMock = new Mock <IContaCorrenteRepository>(); contaRepositoryMock.Setup(x => x.FindByIdAsync(1)).Returns(Task.FromResult(conta)); var transacaoService = new TransacaoService(transacaoRepositoryMock.Object, contaRepositoryMock.Object); var transacao = await transacaoService.SacarAsync(1, valorSaque); Assert.Equal(saldoInicial, transacao.SaldoAnterior); Assert.Equal(valorSaque, transacao.Valor); Assert.Equal(saldoPosSaque, transacao.SaldoFinal); Assert.Equal(saldoPosSaque, transacao.Tarifa.SaldoAnterior); Assert.Equal(valorTarifa, transacao.Tarifa.Valor); Assert.Equal(saldoPosTarifa, transacao.Tarifa.SaldoFinal); Assert.Equal(saldoPosTarifa, transacao.Conta.Saldo); }
public TransacaoServiceTest() { _transacaoService = _moq.Create <TransacaoService>(); _moq.GetMock <ILogFactory>().Setup(x => x.Log()); }
public ContasController(FinancasCasalContext context, TransacaoService transacaoService, ContaService contaService) { _context = context; _transacaoService = transacaoService; _contaService = contaService; }
public TransacaoServiceTest() { transacaoRepositoryMock = new Mock <ITransacaoRepository>(); ServiceUnderTest = new TransacaoService(transacaoRepositoryMock.Object); }
public FundosController(FundoService fundoService, PessoaService pessoaService, TransacaoService transacaoService, ContaService contaService) { _fundoService = fundoService; _pessoaService = pessoaService; _transacaoService = transacaoService; _contaService = contaService; }