public void EhPrimeiroCashIn_Sim_DeveRetornarTrue() { // Arrange int contaId = 1; var cashInRepositorio = Substitute.For <ICashInRepositorio>(); cashInRepositorio.ExisteCashInEfetivado(contaId).Returns(false); var cashInServico = new CashInServico(cashInRepositorio, null, null, null, null, null); // Act var resultado = cashInServico.EhPrimeiroCashIn(contaId); //Assert Assert.IsTrue(resultado); }
public async Task Gerar_PrimeiroCashInValido_DeveRetornarOCashInComBonificacao() { // Arrange var conta = new Conta { Id = 1 }; var descricao = "Teste unitário."; CashIn cashInGerado = null; var cashInRepositorio = Substitute.For <ICashInRepositorio>(); cashInRepositorio.Any(Arg.Any <Expression <Func <CashIn, bool> > >()).Returns(false); cashInRepositorio.When(x => x.Post(Arg.Any <CashIn>())) .Do(x => cashInGerado = x.Arg <CashIn>()); var contaServico = Substitute.For <IContaServico>(); contaServico.ObterConta(conta.Id).Returns(conta); var configuracaoServico = Substitute.For <IConfiguracaoServico>(); configuracaoServico.ObterPercentualBonificacao().Returns(0.1m); var produtorClient = Substitute.For <IProdutorOperacoesClient>(); var operacaoServico = Substitute.For <IOperacaoServico>(); var cashInServico = new CashInServico(cashInRepositorio, operacaoServico, contaServico, configuracaoServico, null, produtorClient); // Act await cashInServico.Gerar(new OperacaoUnariaDto(conta.Id, 10m, descricao)); // Assert Assert.IsNotNull(cashInGerado); Assert.AreEqual(10m, cashInGerado.Valor); Assert.AreEqual(1m, cashInGerado.ValorBonificacao); Assert.AreEqual(descricao, cashInGerado.Descricao); Assert.AreEqual(conta.Id, cashInGerado.ContaId); Assert.AreNotEqual(default, cashInGerado.Data);