Exemplo n.º 1
0
        public async void NaoDeveConseguirEfetuarUmDebitoEmUmaContaInexistente()
        {
            var  useCase = new DebitarUseCase(contaRepository, usuarioAutenticado);
            Guid contaId = Guid.NewGuid();

            await Assert.ThrowsAsync <ContaNaoEncontradaException>(() =>
            {
                return(useCase.Execute(contaId, 45.9));
            });
        }
Exemplo n.º 2
0
        public async void DeveConseguirEfetuarUmDebitoEmUmaContaValida()
        {
            var useCase = new DebitarUseCase(contaRepository, usuarioAutenticado);

            contaFake.Creditar(100);

            var result = await useCase.Execute(contaFake.Id, 45.9);

            Assert.Equal(54.1, result.SaldoAtual);
        }
Exemplo n.º 3
0
        public async void NaoDevePermitirEfetuarDebitoSeUsuarioLogadoNaoForDonoDaConta()
        {
            IUsuarioAutenticado outroUsuarioAutenticado = Substitute.For <IUsuarioAutenticado>();

            outroUsuarioAutenticado.Id.Returns(Guid.NewGuid());

            var useCase = new DebitarUseCase(contaRepository, outroUsuarioAutenticado);

            await Assert.ThrowsAsync <UsuarioLogadoNaoEhDonoDaContaException>(() =>
            {
                return(useCase.Execute(contaFake.Id, 50));
            });
        }
Exemplo n.º 4
0
        public async void DeveDispararUmaExceptionSeValorDoDebitoForMenorOuIgualAZero()
        {
            var useCase = new DebitarUseCase(contaRepository, usuarioAutenticado);

            await Assert.ThrowsAsync <ValorInvalidoException>(() =>
            {
                return(useCase.Execute(Guid.NewGuid(), 0));
            });

            await Assert.ThrowsAsync <ValorInvalidoException>(() =>
            {
                return(useCase.Execute(Guid.NewGuid(), -50));
            });
        }