Example #1
0
        public void ValidarArgumentoTemplate_CondicaoFalsa_NaoDeveLancarArgumentException()
        {
            // Arrange
            var operacaoServico = new OperacaoServico(null);

            // Act and Assert
            operacaoServico.ValidarArgumentoTemplate(false, "Teste unitário.");
        }
Example #2
0
        public void ValidarValor_ValorMaiorQueZero_NaoDeveLancarExcecao()
        {
            // Arrange
            var operacaoServico = new OperacaoServico(null);

            // Act and Assert
            operacaoServico.ValidarValor(1);
        }
Example #3
0
        public void ValidarSaldo_SaldoIgualAoValor_NaoDeveLancarExcecao()
        {
            // Arrange
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.ValidarSaldo(new Conta {
                Saldo = 10
            }, 10);
        }
Example #4
0
        public void AlterarStatusTemplate_OperacaoPendenteStatusEfetivada_DeveAlterarOStatus()
        {
            // Arrange
            var operacao        = new CashIn();
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.AlterarStatusTemplate(operacao, StatusOperacao.Efetivada);

            //Assert
            Assert.AreEqual(StatusOperacao.Efetivada, operacao.Status);
        }
Example #5
0
        public void PodeAlterarStatus_StatusPendente_DeveRetornarTrue()
        {
            // Arrange
            var operacao        = new CashIn();
            var operacaoServico = new OperacaoServico(null);

            // Act
            var resultado = operacaoServico.PodeAlterarStatus(operacao);

            //Assert
            Assert.IsTrue(resultado);
        }
Example #6
0
        public void ValidarDescricao_DescricaoIgualAoMaximo_DevePermitir()
        {
            // Arrange
            var configuracaoServico = Substitute.For <IConfiguracaoServico>();

            configuracaoServico.ObterTamanhoMaximoDescricao().Returns((short)5);

            var operacaoServico = new OperacaoServico(configuracaoServico);

            // Act and Assert
            operacaoServico.ValidarDescricao("abcde");
        }
Example #7
0
        public void MarcarEfetivada_OperacaoPendente_DeveAlterarOStatus()
        {
            // Arrange
            var operacao        = new CashIn();
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.MarcarEfetivada(operacao);

            //Assert
            Assert.AreEqual(StatusOperacao.Efetivada, operacao.Status);
        }
Example #8
0
        public void ValidarSaldo_SaldoInsuficiente_DeveLancarExcecao()
        {
            // Arrange
            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.ValidarSaldo(new Conta(), 10);

            //Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("O saldo da conta é insuficiente para realizar a operação!"));
        }
Example #9
0
        public void ValidarValor_ValorIgualAZero_DeveLancarExcecao()
        {
            // Arrange
            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.ValidarValor(0);

            //Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("O valor da operação deve ser superior a zero!"));
        }
Example #10
0
        public void AlterarStatusTemplate_OperacaoEfetivadaStatusComErro_DeveLancarExcecao()
        {
            // Arrange
            var operacao = new CashIn {
                Status = StatusOperacao.Efetivada
            };
            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.AlterarStatusTemplate(operacao, StatusOperacao.ComErro);

            //Assert
            Assert.AreEqual(StatusOperacao.ComErro, operacao.Status);
        }
Example #11
0
        public void PodeAlterarStatus_StatusComErro_DeveRetornarFalse()
        {
            // Arrange
            var operacao = new CashIn {
                Status = StatusOperacao.ComErro
            };
            var operacaoServico = new OperacaoServico(null);

            // Act
            var resultado = operacaoServico.PodeAlterarStatus(operacao);

            //Assert
            Assert.IsFalse(resultado);
        }
Example #12
0
        public void MarcarComErro_OperacaoPendente_DeveAlterarOStatus()
        {
            // Arrange
            var erro     = "teste";
            var operacao = new CashIn();

            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.MarcarComErro(operacao, erro);

            //Assert
            Assert.AreEqual(StatusOperacao.ComErro, operacao.Status);
            Assert.AreEqual(erro, operacao.Erro);
        }
Example #13
0
        public void Debitar_SaldoSuficiente_DeveDebitarOValor()
        {
            // Arrange
            var conta = new Conta {
                Saldo = 100
            };

            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.Debitar(conta, 10m);

            // Assert
            Assert.AreEqual(90, conta.Saldo);
        }
Example #14
0
        public void ValidarArgumentoTemplate_CondicaoVerdadeira_DeveLancarArgumentException()
        {
            // Arrange
            var mensagem = "Teste unitário.";

            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.ValidarArgumentoTemplate(true, mensagem);

            //Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains(mensagem));
        }
Example #15
0
        public void Creditar_ValorValido_DeveCreditarOValor()
        {
            // Arrange
            var conta = new Conta {
                Id = 1
            };
            var valor = 10;

            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.Creditar(conta, valor);

            // Assert
            Assert.AreEqual(valor, conta.Saldo);
        }
Example #16
0
        public void AlterarStatusTemplate_OperacaoComErroStatusEfetivada_DeveLancarExcecao()
        {
            // Arrange
            var operacao = new CashIn {
                Status = StatusOperacao.ComErro
            };
            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.AlterarStatusTemplate(operacao, StatusOperacao.Efetivada);

            //Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("Não é possível alterar o status de uma operação Com erro!"));
            Assert.AreEqual(StatusOperacao.ComErro, operacao.Status);
        }
Example #17
0
        public void ValidarDescricao_DescricaoMaiorQueMaximo_DeveLancarExcecao()
        {
            // Arrange
            var configuracaoServico = Substitute.For <IConfiguracaoServico>();

            configuracaoServico.ObterTamanhoMaximoDescricao().Returns((short)5);

            var operacaoServico = new OperacaoServico(configuracaoServico);

            // Act
            Action acao = () => operacaoServico.ValidarDescricao("abcdef");

            // Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("A descrição não pode ter mais que 5 caracteres!"));
        }
Example #18
0
        public void Creditar_ValorInvalido_DeveLancarExcecaoEPararOProcesso()
        {
            // Arrange
            var conta = new Conta();
            var valor = -1;

            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.Creditar(conta, valor);

            // Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("O valor da operação deve ser superior a zero!"));
            Assert.AreEqual(0, conta.Saldo);
        }
Example #19
0
        public void Debitar_SaldoInsuficiente_DeveLancarExcecaoEPararOProcesso()
        {
            // Arrange
            var conta = new Conta {
                Saldo = 10
            };

            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.Debitar(conta, 100);

            // Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("O saldo da conta é insuficiente para realizar a operação!"));
            Assert.AreEqual(10, conta.Saldo);
        }
        public async Task Gerar_CashOutValido_DeveRetornarOCashOutECalcularTaxa()
        {
            // Arrange
            var conta = new Conta {
                Id = 1
            };
            var valor     = 10m;
            var descricao = "Teste unitário.";

            CashOut cashOutGerado = null;

            var cashOutRepositorio = Substitute.For <ICashOutRepositorio>();

            cashOutRepositorio.When(x => x.Post(Arg.Any <CashOut>()))
            .Do(x => cashOutGerado = x.Arg <CashOut>());

            var configuracaoServico = Substitute.For <IConfiguracaoServico>();

            configuracaoServico.ObterPercentualTaxa().Returns(0.01m);
            configuracaoServico.ObterTamanhoMaximoDescricao().Returns((short)15);

            var contaRepositorio = Substitute.For <IContaRepositorio>();

            contaRepositorio.Any(conta.Id).Returns(true);
            contaRepositorio.Get(conta.Id).Returns(conta);

            var contaServico    = new ContaServico(contaRepositorio);
            var operacaoServico = new OperacaoServico(configuracaoServico);

            var produtorClient = Substitute.For <IProdutorOperacoesClient>();

            var cashOutServico = new CashOutServico(cashOutRepositorio, operacaoServico, contaServico, configuracaoServico, null, produtorClient);

            // Act
            await cashOutServico.Gerar(new OperacaoUnariaDto(conta.Id, valor, descricao));

            // Assert
            Assert.IsNotNull(cashOutGerado);
            Assert.AreEqual(valor, cashOutGerado.Valor);
            Assert.AreEqual(0.1m, cashOutGerado.ValorTaxa);
            Assert.AreEqual(descricao, cashOutGerado.Descricao);
            Assert.AreEqual(StatusOperacao.Pendente, cashOutGerado.Status);
            Assert.AreNotEqual(default, cashOutGerado.Data);
Example #21
0
        public void AlterarValoresTemplate_Valido_DeveExecutarAcaoPrincipal()
        {
            // Arrange
            var conta = new Conta {
                Saldo = 1
            };
            var valor = 999m;

            Action <Conta> acaoPrincipal = (conta) =>
            {
                conta.Saldo = valor;
            };

            var operacaoServico = new OperacaoServico(null);

            // Act
            operacaoServico.AlterarValoresTemplate(conta, valor, acaoPrincipal);

            // Assert
            Assert.AreEqual(valor, conta.Saldo);
        }
        public void GerarPeloTipo_InformacoesValidasDeSaida_DeveGerarTransferencia()
        {
            // Arrange
            var valor = 10m;
            var conta = new Conta
            {
                Id    = 1,
                Saldo = valor
            };

            var           tipoTransferencia   = TipoMovimentacao.Saida;
            Transferencia transferenciaGerada = null;

            var transferenciaRepositorio = Substitute.For <ITransferenciaRepositorio>();

            transferenciaRepositorio.When(x => x.Post(Arg.Any <Transferencia>()))
            .Do(x => transferenciaGerada = x.Arg <Transferencia>());

            var operacaoServico = new OperacaoServico(null);

            var contaRepositorio = Substitute.For <IContaRepositorio>();

            contaRepositorio.Any(Arg.Any <int>()).Returns(true);
            contaRepositorio.Get(conta.Id).Returns(conta);

            var contaServico = new ContaServico(contaRepositorio);

            var transferenciaServico = new TransferenciaServico(transferenciaRepositorio, operacaoServico, contaServico, null, null);

            // Act
            transferenciaServico.GerarPeloTipo(conta.Id, valor, "Teste unitário.", tipoTransferencia);

            // Assert
            Assert.IsNotNull(transferenciaGerada);
            Assert.AreEqual(tipoTransferencia, transferenciaGerada.TipoMovimentacao);
            Assert.AreEqual(StatusOperacao.Pendente, transferenciaGerada.Status);
            Assert.AreEqual(valor, transferenciaGerada.SaldoAnterior);
            Assert.AreEqual(valor, transferenciaGerada.Valor);
            Assert.AreNotEqual(default, transferenciaGerada.Data);
Example #23
0
        public void AlterarValoresTemplate_ValorInvalido_DeveLancarExcecaoEPararOProcesso()
        {
            // Arrange
            var conta = new Conta {
                Saldo = 1
            };

            Action <Conta> acaoPrincipal = (conta) =>
            {
                conta.Saldo = 999;
            };

            var operacaoServico = new OperacaoServico(null);

            // Act
            Action acao = () => operacaoServico.AlterarValoresTemplate(conta, -1, acaoPrincipal);

            // Assert
            var excecao = Assert.ThrowsException <CarteiraDigitalException>(acao);

            Assert.IsTrue(excecao.Message.Contains("O valor da operação deve ser superior a zero!"));
            Assert.AreEqual(1, conta.Saldo);
        }
Example #24
0
 protected AbstractCrudController()
 {
     logSgaServico   = new LogSgaServico();
     operacaoServico = new OperacaoServico();
 }
Example #25
0
 protected AbstractCrudController(ICrudServico <Tipo> s)
 {
     servico         = s;
     logSgaServico   = new LogSgaServico();
     operacaoServico = new OperacaoServico();
 }