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)); }); }
public async void NaoDeveConseguirEfetuarUmDebitoEmUmaContaInexistente() { var useCase = new DebitarUseCase(contaRepository, usuarioAutenticado); Guid contaId = Guid.NewGuid(); await Assert.ThrowsAsync <ContaNaoEncontradaException>(() => { return(useCase.Execute(contaId, 45.9)); }); }
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); }
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)); }); }