Beispiel #1
0
 public void Domain_Conta_CalcularSaldoTotal_Deveria_Retornar_Saldo_mais_Limite()
 {
     //Action
     _conta = ContaObjectMother.GetContaComMock(_cliente.Object);
     //Verify
     _conta.SaldoTotal.Should().Be(_conta.Saldo + _conta.Limite);
 }
Beispiel #2
0
        public void Service_Conta_EfetuarTransferencia_DevePassar()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaValida();
            Conta contaDestino = ContaObjectMother.GetContaComMovimentacao();

            contaDestino.Id = 2;

            int idContaOrigem  = 1;
            int idContaDestino = 2;

            _repositoryFake.Setup(x => x.GetById(idContaOrigem)).Returns(_conta);
            _repositoryFake.Setup(x => x.GetById(idContaDestino)).Returns(contaDestino);

            _repositoryFake.Setup(x => x.Update(_conta)).Returns(true);
            _repositoryFake.Setup(x => x.Update(contaDestino)).Returns(true);
            //Action
            _service.EfetuarTrasferencia(_conta.Id, contaDestino.Id, 1000);
            //Verify
            _repositoryFake.Verify(x => x.GetById(_conta.Id));
            _repositoryFake.Verify(x => x.Update(_conta));
            _repositoryFake.Verify(x => x.Update(contaDestino));
            _conta.SaldoTotal.Should().Be(ContaObjectMother.GetContaValida().SaldoTotal - 1000);
            contaDestino.SaldoTotal.Should().Be(ContaObjectMother.GetContaComMovimentacao().SaldoTotal + 1000);
        }
Beispiel #3
0
        public void Service_Conta_EfetuarTransferenciaSemLimite_NãoDevePermitir()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaValida();
            Conta contaDestino = ContaObjectMother.GetContaComMovimentacao();

            contaDestino.Id = 2;
            int idContaOrigem  = 1;
            int idContaDestino = 2;

            _repositoryFake.Setup(x => x.GetById(idContaOrigem)).Returns(_conta);
            _repositoryFake.Setup(x => x.GetById(idContaDestino)).Returns(contaDestino);

            _repositoryFake.Setup(x => x.Update(_conta)).Returns(false);
            _repositoryFake.Setup(x => x.Update(contaDestino)).Returns(false);
            //Action
            Action action = () => _service.EfetuarTrasferencia(_conta.Id, contaDestino.Id, 5000);

            //Verify
            action.Should().Throw <ContaSaldoInsuficienteException>();
            _repositoryFake.Verify(x => x.GetById(_conta.Id));
            _repositoryFake.Verify(x => x.GetById(contaDestino.Id));
            _conta.SaldoTotal.Should().Be(ContaObjectMother.GetContaValida().SaldoTotal);
            contaDestino.SaldoTotal.Should().Be(ContaObjectMother.GetContaComMovimentacao().SaldoTotal);
            _repositoryFake.VerifyNoOtherCalls();
        }
Beispiel #4
0
 public void Domain_Conta_AlterarEstado_Deveria_Mudar_Conta_para_Ativa()
 {
     //Action
     _conta = ContaObjectMother.GetContaInativaComMock(_cliente.Object);
     _conta.AlterarEstado();
     //Verify
     _conta.Ativada.Should().BeTrue();
 }
Beispiel #5
0
        protected override void Seed(BancoTabajaraContext context)
        {
            var _seed = new DatabaseBootstrapper(context);

            _seed.Configure();
            context.Contas.Add(ContaObjectMother.GetContaComMovimentacao());
            context.SaveChanges();
        }
Beispiel #6
0
        public void Domain_Conta_VerificaNumeroConta_Nao_Deveria_Permitir_Alterar_Numero_Conta()
        {
            //Action
            _conta = ContaObjectMother.GetContaComMock(_cliente.Object);
            Action action = () => _conta.VerificaNumeroConta(777);

            //Verify
            action.Should().Throw <ContaNumeroAlteradoException>();
        }
Beispiel #7
0
        public void Domain_Conta_Validar_ContaSemClienteDeveLancarExcessao()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaSemCliente();
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().Throw <ContaClienteInvalidoException>();
        }
Beispiel #8
0
        public void Domain_Conta_Validar_DevePassar()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaComMock(_cliente.Object);
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().NotThrow <Exception>();
        }
Beispiel #9
0
        public void Domain_Conta_Validar_NumeroDaContaInvalida_DeveLancarExcessao()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaNumeroContaNegativaComMock(_cliente.Object);
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().Throw <ContaNumeroContaInvalidaException>();
        }
Beispiel #10
0
        public void Domain_Conta_Validar_LimiteNegativoDeveLancarExcessao()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaLimiteNegativoComMock(_cliente.Object);
            _conta.RealizarDeposito(100);
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().Throw <ContaLimiteInvalidoException>();
        }
Beispiel #11
0
        public void Domain_Conta_Validar_SaldoNegativo_DeveLancarExcessao()
        {
            //Arrange
            _conta        = ContaObjectMother.GetContSaldoNegativoComMock(_cliente.Object);
            _conta.Limite = -100;
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().Throw <ContaSaldoMenorQueZeroException>();
        }
Beispiel #12
0
 public void Domain_Conta_RealizarSaque_Deveria_Remover_Valor_Do_Saldo_E_Criar_Movimentacao()
 {
     //Action
     _conta = ContaObjectMother.GetContaComMock(_cliente.Object);
     _conta.RealizarSaque(100);
     //Verify
     _conta.Saldo.Should().Be(ContaObjectMother.GetContaComMock(_cliente.Object).Saldo - 100);
     _conta.Movimentacoes.Count().Should().BeGreaterThan(0);
     _conta.Movimentacoes.First().TipoOperacao.Should().Be(TipoOperacaoEnum.Debito);
     _conta.Movimentacoes.First().Valor.Should().Be(100);
 }
Beispiel #13
0
        public void Domain_Conta_RealizarSaque_ComSaldoInsuficiente_Nao_Deveria_Permitir_Nao_Deveria_Criar_Movimentacao()
        {
            //Action
            _conta = ContaObjectMother.GetContaComMock(_cliente.Object);
            Action action = () => _conta.RealizarSaque(5000);

            //Verify
            action.Should().Throw <ContaSaldoInsuficienteException>();
            _conta.Saldo.Should().Be(ContaObjectMother.GetContaComMock(_cliente.Object).Saldo);
            _conta.Movimentacoes.Count().Should().Be(0);
        }
Beispiel #14
0
        public void Service_Conta_AdicionarContaSemCliente_DeveLancarExcecao()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaSemCliente();
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().Throw <ContaClienteInvalidoException>();
            _repositoryFake.VerifyNoOtherCalls();
        }
Beispiel #15
0
 public void Domain_Conta_RealizarDeposito_Deveria_Adicionar_Valor_No_Saldo_E_Criar_Movimentacao()
 {
     //Action
     _conta = ContaObjectMother.GetContaComMock(_cliente.Object);
     _conta.RealizarDeposito(100);
     //Verify
     _conta.Saldo.Should().Be(ContaObjectMother.GetContaComMock(_cliente.Object).Saldo + 100);
     _conta.Movimentacoes.Count().Should().BeGreaterThan(0);
     _conta.Movimentacoes.First().TipoOperacao.Should().Be(TipoOperacaoEnum.Credito);
     _conta.Movimentacoes.First().Valor.Should().Be(100);
 }
Beispiel #16
0
        public void Service_Conta_AdicionarContaLimiteNegativo_DeveLancarExcecao()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaLimiteNegativo();
            _conta.RealizarDeposito(100);
            //Action
            Action act = () => _conta.Validar();

            //Verify
            act.Should().Throw <ContaLimiteInvalidoException>();
            _repositoryFake.VerifyNoOtherCalls();
        }
Beispiel #17
0
 public void Service_Conta_EfetuarDeposito_DevePassar()
 {
     //Arrange
     _conta = ContaObjectMother.GetContaValida();
     _repositoryFake.Setup(x => x.Update(It.IsAny <Conta>()));
     _repositoryFake.Setup(x => x.GetById(It.IsAny <int>())).Returns(_conta);
     //Action
     _service.EfetuarDeposito(_conta.Id, 1000);
     //Verify
     _repositoryFake.Verify(x => x.Update(_conta));
     _conta.SaldoTotal.Should().Be(ContaObjectMother.GetContaValida().SaldoTotal + 1000);
 }
Beispiel #18
0
 public void Service_Conta_AlterarEstado_DevePassar()
 {
     //Arrange
     _conta = ContaObjectMother.GetContaValida();
     _repositoryFake.Setup(x => x.GetById(_conta.Id)).Returns(_conta);
     _repositoryFake.Setup(x => x.Update(_conta)).Returns(true);
     //Action
     _service.AlterarEstado(_conta.Id);
     //Verify
     _repositoryFake.Verify(x => x.Update(_conta));
     _conta.Ativada.Should().Be(!ContaObjectMother.GetContaValida().Ativada);
 }
Beispiel #19
0
        public void Domain_Conta_GerarExtrato_DeveFuncionar()
        {
            //Arrange
            _conta         = ContaObjectMother.GetContaNumeroContaNegativaComMock(_cliente.Object);
            _conta.Cliente = ClienteObjectMother.GetCliente();
            var extrato = _conta.GerarExtrato();

            //Verify
            extrato.Limite.Should().Be(_conta.Limite);
            extrato.NomeCliente.Should().Be(_conta.Cliente.Nome);
            extrato.NumeroConta.Should().Be(_conta.NumeroConta);
            extrato.Saldo.Should().Be(_conta.Saldo);
        }
Beispiel #20
0
        public void Service_Conta_Delete_DeveJogarExcessao_NotFoundException()
        {
            //Arrange
            var contaCmd = ContaObjectMother.GetContaValidaParaDeletar();

            _repositoryFake.Setup(x => x.Delete(contaCmd.Id)).Throws <NotFoundException>();
            //Action
            Action act = () => _service.Delete(contaCmd);

            //Assert
            act.Should().Throw <NotFoundException>();
            _repositoryFake.Verify(pr => pr.Delete(contaCmd.Id), Times.Once);
        }
Beispiel #21
0
        public void Service_Conta_PegarContaPorId_DevePassar()
        {
            //Arrange
            _conta    = ContaObjectMother.GetConta();
            _conta.Id = 1;
            _repositoryFake.Setup(x => x.GetById(It.IsAny <int>())).Returns(_conta);
            //Action
            var recebido = _service.GetById(_conta.Id);

            //Verify
            recebido.Should().NotBeNull();
            _repositoryFake.Verify(x => x.GetById(_conta.Id));
        }
Beispiel #22
0
        public void Service_Conta_PegarContaPorId_DeveJogarExcessao_NotFoundException()
        {
            //Arrange
            var conta = ContaObjectMother.GetContaValida();

            _repositoryFake.Setup(pr => pr.GetById(conta.Id)).Throws <NotFoundException>();
            //Action
            Action act = () => _service.GetById(conta.Id);

            //Assert
            act.Should().Throw <NotFoundException>();
            _repositoryFake.Verify(pr => pr.GetById(conta.Id), Times.Once);
        }
Beispiel #23
0
        public void Service_Conta_Delete_DevePassar()
        {
            //Arrange
            var contaCmd = ContaObjectMother.GetContaValidaParaDeletar();
            var removido = true;

            _repositoryFake.Setup(pr => pr.Delete(contaCmd.Id)).Returns(removido);
            //Action
            var contaRemovido = _service.Delete(contaCmd);

            //Assert
            _repositoryFake.Verify(pr => pr.Delete(contaCmd.Id), Times.Once);
            contaRemovido.Should().BeTrue();
        }
Beispiel #24
0
        public void Service_Conta_AtualizarConta_DeveJogarExcessao_NotFoundException()
        {
            //Arrange
            var contaCmd = ContaObjectMother.GetContaValidaParaAtualizar();

            _repositoryFake.Setup(x => x.GetById(contaCmd.Id)).Returns((Conta)null);
            //Action
            Action act = () => _service.Update(contaCmd);

            //Assert
            act.Should().Throw <NotFoundException>();
            _repositoryFake.Verify(pr => pr.GetById(contaCmd.Id), Times.Once);
            _repositoryFake.Verify(pr => pr.Update(It.IsAny <Conta>()), Times.Never);
        }
Beispiel #25
0
        public void Service_Conta_EfetuarTransferenciaErroAoGravarSaque_NãoDevePermitir()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaValida();
            Conta contaDestino = ContaObjectMother.GetContaValida();

            _repositoryFake.Setup(x => x.GetById(It.IsAny <int>())).Returns(_conta);
            contaDestino.Id = 2;
            _repositoryFake.Setup(x => x.Update(It.IsAny <Conta>())).Returns(false);
            //Action
            _service.EfetuarTrasferencia(_conta.Id, contaDestino.Id, 1000);
            //Verify
            _repositoryFake.Verify(x => x.Update(_conta));
        }
Beispiel #26
0
        public void Controller_Contas_GetById_DevePassar()
        {
            // Arrange
            var conta = ContaObjectMother.GetContaValida();

            _contaServiceMock.Setup(c => c.GetById(conta.Id)).Returns(conta);
            // Action
            IHttpActionResult callback = _contasController.GetById(conta.Id);
            // Assert
            var httpResponse = callback.Should().BeOfType <OkNegotiatedContentResult <ContaViewModel> >().Subject;

            httpResponse.Content.Should().NotBeNull();
            httpResponse.Content.Id.Should().Be(conta.Id);
            _contaServiceMock.Verify(s => s.GetById(conta.Id), Times.Once);
        }
Beispiel #27
0
        public void Setup()
        {
            var connection = DbConnectionFactory.CreatePersistent(Guid.NewGuid().ToString());

            _context    = new FakeDbContext(connection);
            _repository = new ContaRepository(_context);

            _conta = ContaObjectMother.GetContaValida();
            //Seed
            _contaSeed = ContaObjectMother.GetContaValida();
            _context.Contas.Add(_contaSeed);
            _context.Clientes.Add(_contaSeed.Cliente);
            _context.Clientes.Add(_conta.Cliente);
            _context.SaveChanges();
        }
Beispiel #28
0
        public void Service_Conta_EfetuarSaqueSemLimite_NãoDevePermitir()
        {
            //Arrange
            _conta = ContaObjectMother.GetContaValida();
            _repositoryFake.Setup(x => x.Update(It.IsAny <Conta>()));
            _repositoryFake.Setup(x => x.GetById(It.IsAny <int>())).Returns(_conta);
            //Action
            Action action = () => _service.EfetuarSaque(_conta.Id, 5000);

            //Verify
            action.Should().Throw <ContaSaldoInsuficienteException>();
            _conta.SaldoTotal.Should().Be(ContaObjectMother.GetContaValida().SaldoTotal);
            _repositoryFake.Verify(pr => pr.GetById(_conta.Id), Times.Once);
            _repositoryFake.Verify(pr => pr.Update(It.IsAny <Conta>()), Times.Never);
            _repositoryFake.VerifyNoOtherCalls();
        }
Beispiel #29
0
        public void Controller_Contas_GerarExtrato_DevePassar()
        {
            // Arrange
            var conta   = ContaObjectMother.GetContaValida();
            var extrato = conta.GerarExtrato();

            _contaServiceMock.Setup(s => s.GetExtrato(conta.Id)).Returns(extrato);
            // Action
            var callback = _contasController.GetExtrato(conta.Id);

            //Assert
            _contaServiceMock.Verify(s => s.GetExtrato(conta.Id), Times.Once);
            var httpResponse = callback.Should().BeOfType <OkNegotiatedContentResult <Extrato> >().Subject;

            httpResponse.Content.Should().NotBeNull();
        }
Beispiel #30
0
        public void Service_Conta_AdicionarConta_DevePassar()
        {
            //Arrange
            var conta    = ContaObjectMother.GetContaValida();
            var contaCmd = ContaObjectMother.GetContaValidaParaRegistrar();

            _repositoryFake.Setup(x => x.Add(It.IsAny <Conta>()))
            .Returns(conta);
            _repositoryClienteFake.Setup(cl => cl.GetById(contaCmd.ClienteId)).Returns(conta.Cliente);
            //Action
            var novoContaId = _service.Add(contaCmd);

            //Verify
            _repositoryFake.Verify(x => x.Add(It.IsAny <Conta>()), Times.Once);
            novoContaId.Should().Be(conta.Id);
        }