public async void DeveDispararUmaExceptionSeValorDoCreditoForMenorOuIgualAZero() { var useCase = new CreditarUseCase(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 DeveConseguirEfetuarUmCreditoEmUmaContaValida() { var useCase = new CreditarUseCase(contaRepository, usuarioAutenticado); var result = await useCase.Execute(contaFake.Id, 50); Assert.Equal(50, result.SaldoAtual); }
public async void NaoDeveConseguirEfetuarUmCreditoEmUmaContaInexistente() { var useCase = new CreditarUseCase(contaRepository, usuarioAutenticado); await Assert.ThrowsAsync <ContaNaoEncontradaException>(() => { return(useCase.Execute(Guid.NewGuid(), 50)); }); }
public async void NaoDevePermitirEfetuarCreditoSeUsuarioLogadoNaoForDonoDaConta() { IUsuarioAutenticado outroUsuarioAutenticado = Substitute.For <IUsuarioAutenticado>(); outroUsuarioAutenticado.Id.Returns(Guid.NewGuid()); var useCase = new CreditarUseCase(contaRepository, outroUsuarioAutenticado); await Assert.ThrowsAsync <UsuarioLogadoNaoEhDonoDaContaException>(() => { return(useCase.Execute(contaFake.Id, 50)); }); }