Ejemplo n.º 1
0
        public void Deve_lancar_excessao_quando_saldo_insuficiente()
        {
            var contaCorrenteServicoMock = new Mock <IContaCorrenteServico>();

            contaCorrenteServicoMock.Setup(s => s.ObterSaldo(It.IsAny <int>()))
            .Returns(0);

            var contaCorrenteRepositorioMock = new Mock <IContaCorrenteRepositorio>();

            contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Origem)))
            .Returns(ContaOrgiem);

            contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Destino)))
            .Returns(ContaDestino);

            var request = new TransferenciaRequest
            {
                ContaOrigem  = Origem,
                ContaDestino = Destino,
                Valor        = 300
            };

            TransferenciaUseCase transferenciaUseCase = new TransferenciaUseCase(contaCorrenteServicoMock.Object, contaCorrenteRepositorioMock.Object);
            Action action = () => transferenciaUseCase.Executar(request);

            action.Should().Throw <SaldoInsuficienteException>();
        }
Ejemplo n.º 2
0
        public void Deve_executar_transferencia()
        {
            var contaCorrenteServicoMock = new Mock <IContaCorrenteServico>();

            contaCorrenteServicoMock.Setup(s => s.ObterSaldo(It.IsAny <int>()))
            .Returns(300);

            var contaCorrenteRepositorioMock = new Mock <IContaCorrenteRepositorio>();

            contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Origem)))
            .Returns(ContaOrgiem);

            contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Destino)))
            .Returns(ContaDestino);

            var request = new TransferenciaRequest
            {
                ContaOrigem  = Origem,
                ContaDestino = Destino,
                Valor        = 300
            };

            var transferenciaUseCase = new TransferenciaUseCase(contaCorrenteServicoMock.Object, contaCorrenteRepositorioMock.Object);

            transferenciaUseCase.Executar(request);

            contaCorrenteRepositorioMock.Verify(r => r.Salvar(It.IsAny <ContaCorrente>()), Times.Exactly(2));
        }
Ejemplo n.º 3
0
        public void Deve_lancar_excessao_quando_conta_origem_invalida()
        {
            var contaCorrenteServicoMock     = new Mock <IContaCorrenteServico>();
            var contaCorrenteRepositorioMock = new Mock <IContaCorrenteRepositorio>();

            contaCorrenteRepositorioMock.Setup(r => r.Obter(It.Is <int>(c => c == Origem)))
            .Returns <ContaCorrente>(null);

            var request = new TransferenciaRequest
            {
                ContaOrigem  = Origem,
                ContaDestino = Destino,
                Valor        = 300
            };

            TransferenciaUseCase transferenciaUseCase = new TransferenciaUseCase(contaCorrenteServicoMock.Object, contaCorrenteRepositorioMock.Object);
            Action action = () => transferenciaUseCase.Executar(request);

            action.Should().Throw <ContaCorrenteInvalidaException>();
        }