public async Task <ActionResult <Contrato> > Post(
            [FromServices] DataContext context,
            [FromBody] Contrato model)
        {
            if (ModelState.IsValid)
            {
                context.Contratos.Add(model);
                await context.SaveChangesAsync();

                var valor = (model.ValorFinanciado / model.Parcelas);
                for (int i = 0; i < model.Parcelas; i++)
                {
                    int       vencimento = i + 1;
                    Prestacao prestacao  = new Prestacao();
                    prestacao.Valor          = valor;
                    prestacao.ContratoId     = model.Id;
                    prestacao.DataVencimento = DateTime.Today.AddMonths(vencimento);
                    context.Prestacoes.Add(prestacao);
                }
                await context.SaveChangesAsync();

                return(model);
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        static void Main(string[] args)
        {
            // classes originais
            var prestacao = new Prestacao();
            var valor = prestacao.Calcular(10000m, 100);
            Console.WriteLine("Valor calculado: {0:C}", valor);

            var prestacaoContratoEspecial = new PrestacaoContratoEspecial();
            valor = prestacaoContratoEspecial.Calcular(10000m, 100);
            Console.WriteLine("Valor calculado: {0:C}", valor);

            // classes refatoradas
            var prestacaoRefatorada = new Refatorado.Prestacao();
            valor = prestacaoRefatorada.Calcular(10000m, 100);
            Console.WriteLine("Valor calculado: {0:C}", valor);

            var prestacaoRefatoradaEspecial = new Refatorado.PrestacaoContratoEspecial();
            valor = prestacaoRefatoradaEspecial.Calcular(10000m, 100);
            Console.WriteLine("Valor calculado: {0:C}", valor);

            // classes com o padrao TemplateMethod
            var prestacaoPadrao = new TemplateMethod.PrestacaoContratoPadrao();
            valor = prestacaoPadrao.Calcular(10000m, 100);
            Console.WriteLine("Valor calculado: {0:C}", valor);

            var prestacaoEspecial = new TemplateMethod.PrestacaoContratoEspecial();
            valor = prestacaoEspecial.Calcular(10000m, 100);
            Console.WriteLine("Valor calculado: {0:C}", valor);

            Console.ReadKey();
        }
Example #3
0
        public SaldoEmprestimo GerarSaldo(Prestacao pPrestacao)
        {
            if (pPrestacao.Id < 1)
            {
                throw new OperacaoNaoRealizadaException();
            }
            if (pPrestacao.Contrato == null)
            {
                throw new CampoNaoInformadoException("Saldo", "Contrato", true);
            }

            SaldoEmprestimo lSaldo = new SaldoEmprestimo();

            lSaldo.Contrato       = pPrestacao.Contrato;
            lSaldo.Correcao       = pPrestacao.ValorCorrecao;
            lSaldo.DataReferencia = pPrestacao.DataVencimento.Value;
            lSaldo.Prestacao      = pPrestacao;

            Contrato lContrato = pPrestacao.Contrato;

            foreach (Prestacao lPrestacao in lContrato.Prestacoes)
            {
                if (lPrestacao.NumeroPrestacao <= pPrestacao.NumeroPrestacao)
                {
                    lSaldo.SaldoPrincipal += lPrestacao.ValorPrestacao;
                }
                if (lPrestacao.DataPagamento == null)
                {
                    lSaldo.SaldoDevedorTotal += lPrestacao.ValorPrestacao;
                }
            }
            lSaldo.SaldoDevedorTotal -= lSaldo.Prestacao.ValorPrestacao;
            return(lSaldo);
        }
        public async Task <ActionResult <Contrato> > Post([FromServices] DataContext context, [FromBody] Contrato model)
        {
            if (ModelState.IsValid && model.Id == 0)
            {
                context.Contratos.Add(model);
                long     valorPrestacoes = model.ValorFianciado / model.QuantidadeParcelas;
                DateTime dataProximaPrestacao;
                if (model.DataContratacao == DateTime.MinValue)
                {
                    dataProximaPrestacao = DateTime.Now.AddDays(30);
                }
                else
                {
                    dataProximaPrestacao = model.DataContratacao.AddDays(30);
                }

                for (int i = 1; i <= model.QuantidadeParcelas; i++)
                {
                    Prestacao p = new Prestacao();
                    p.ContratoId     = model.Id;
                    p.Valor          = valorPrestacoes;
                    p.DataVencimento = dataProximaPrestacao;
                    context.Prestacoes_Contrato.Add(p);
                    dataProximaPrestacao = dataProximaPrestacao.AddDays(30);
                }
                await context.SaveChangesAsync();

                return(model);
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public bool EnviarEmail(Prestacao prestacao, PrestacaoStatuses statusAtual, string emailTo)
        {
            try
            {
                var mail = new MailMessage
                {
                    From = new MailAddress(_emailSettings.FromEmail, "PrestaSys")
                };

                mail.To.Add(new MailAddress(emailTo));
                mail.Subject    = "PrestaSys - Prestação de Contas - " + prestacao.Titulo;
                mail.Body       = GetEmailBody(prestacao, statusAtual);
                mail.IsBodyHtml = true;
                mail.Priority   = MailPriority.High;

                using (var smtp = new SmtpClient(_emailSettings.PrimaryDomain, _emailSettings.PrimaryPort))
                {
                    smtp.Credentials =
                        new NetworkCredential(_emailSettings.UsernameEmail, _emailSettings.UsernamePassword);

                    smtp.EnableSsl = true;

                    if (!_environment.IsDevelopment())
                    {
                        smtp.Send(mail);
                    }

                    return(true);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public int Create(Prestacao prestacao)
        {
            var emailTo = GetEmailTo(prestacao, PrestacaoStatuses.EmAprovacaoOperacional);

            _emailService.EnviarEmail(prestacao, PrestacaoStatuses.EmAprovacaoOperacional, emailTo);
            return(_repository.Create(prestacao));
        }
        public void ShouldCallDeletePrestacaoFromPrestaSysDbContext()
        {
            // Arrange
            const int prestacaoToBeDeleted = 7;
            const int expectedResult       = 1;

            var prestacaoEntity = new Prestacao
            {
                Id = prestacaoToBeDeleted
            };

            var dbContextMock = new DbContextMock <PrestaSysDbContext>(DummyOptions);

            dbContextMock.Setup(s => s.Prestacao.Find(prestacaoToBeDeleted)).Returns(prestacaoEntity);
            dbContextMock.Setup(s => s.Prestacao.Remove(prestacaoEntity)).Returns(It.IsAny <EntityEntry <Prestacao> >);
            dbContextMock.Setup(s => s.SaveChanges()).Returns(expectedResult);

            var prestacaoRepository = new PrestacaoRepository(dbContextMock.Object);

            // Act
            var result = prestacaoRepository.Delete(prestacaoToBeDeleted);

            // Assert
            dbContextMock.Verify(m => m.Prestacao.Find(prestacaoToBeDeleted), Times.Once());
            dbContextMock.Verify(m => m.Prestacao.Remove(prestacaoEntity), Times.Once());
            dbContextMock.Verify(m => m.SaveChanges(), Times.Once());
            result.Should().Be(expectedResult);
        }
Example #8
0
        public async Task Test3_ConsultarPrestacoeContratoExcluido()
        {
            //Arrange
            var _options = new DbContextOptionsBuilder <Contratos.Data.DataContext>()
                           .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                           .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking)
                           .Options;

            // Insert seed data into the database using one instance of the context
            using (var context = new Contratos.Data.DataContext(_options))
            {
                Contrato contrato = new Contrato();
                contrato.DataContratacao    = DateTime.Now.AddDays(-60);
                contrato.ValorFianciado     = 12000;
                contrato.QuantidadeParcelas = 3;
                context.Contratos.Add(contrato);

                Prestacao p1 = new Prestacao();
                p1.ContratoId     = 1;
                p1.DataVencimento = DateTime.Now.AddDays(-29);
                p1.Valor          = 1000;
                context.Prestacoes_Contrato.Add(p1);

                Prestacao p2 = new Prestacao();
                p2.ContratoId     = 1;
                p2.DataVencimento = DateTime.Now.AddDays(-1);
                p2.Valor          = 1000;
                context.Prestacoes_Contrato.Add(p2);

                Prestacao p3 = new Prestacao();
                p3.ContratoId     = 1;
                p3.DataVencimento = DateTime.Now.AddDays(+29);
                p3.Valor          = 1000;
                context.Prestacoes_Contrato.Add(p3);
                context.SaveChanges();
                context.Entry <Contrato>(contrato).State = EntityState.Detached;
                context.Entry <Prestacao>(p1).State      = EntityState.Detached;
                context.Entry <Prestacao>(p2).State      = EntityState.Detached;
                context.Entry <Prestacao>(p3).State      = EntityState.Detached;

                //Act
                ActionResult <List <Prestacao> > result = await prestacaoController.GetByContratoId(context, 1);

                ActionResult <Contrato> result1 = await contratoController.Delete(context, 1);

                ActionResult <List <Prestacao> > result2 = await prestacaoController.GetByContratoId(context, 1);

                //Assert
                // antes da exclusao existem prestacoes
                Assert.IsType <List <Prestacao> >(result.Value);
                Assert.NotEmpty(result.Value);
                //apos exclusao nao existem mais
                Assert.IsType <List <Prestacao> >(result2.Value);
                Assert.Empty(result2.Value);
            }
        }
Example #9
0
        public string DefineStatus(Prestacao prestacao)
        {
            var status = "Baixada";

            if (prestacao.DataVencimento >= DateTime.Today.Date && prestacao.DataPagamento.Equals(null))
            {
                status = "Aberta";
            }
            else if (prestacao.DataVencimento < DateTime.Today.Date && prestacao.DataPagamento.Equals(null))
            {
                status = "Atrasada";
            }

            return(status);
        }
Example #10
0
        private List <Prestacao> CriaListaPrestacoes()
        {
            var prestacao = new Prestacao();

            prestacao.ContratoId     = 1;
            prestacao.DataPagamento  = DateTime.Today.Date;
            prestacao.DataVencimento = DateTime.Today.Date;
            prestacao.Status         = "Baixada";
            prestacao.Valor          = 22;
            var prestacoes = new List <Prestacao>();

            prestacoes.Add(prestacao);

            return(prestacoes);
        }
Example #11
0
        public void Cadastrar(Contrato contrato)
        {
            contrato.Prestacoes = new List <Prestacao>();
            for (int i = 0; i < contrato.QuantidadeParcelas; i++)
            {
                Prestacao prestacao = new Prestacao
                {
                    DataVencimento = contrato.Data.AddMonths(i + 1),
                    //IdContrato = (int)contrato.Id,
                    Valor = (contrato.ValorFinanciado / contrato.QuantidadeParcelas)
                };
                prestacao.GetStatus();
                contrato.Prestacoes.Add(prestacao);
            }

            RepositorioContrato.Create(contrato);
        }
        public void RejeitarPrestacaoShouldThrowNotSupportedException()
        {
            // Arrange
            var prestacaoRepository = Mock.Of <IPrestacaoRepository>();
            var usuarioService      = Mock.Of <IUsuarioService>();

            var prestacao = new Prestacao {
                Id = 1, Titulo = "Teste"
            };
            const string justificativa = "Teste de Justificativa";

            var rejeitadaActions =
                new FinalizadaActions(prestacaoRepository, usuarioService);

            // Act & Assert
            Assert.ThrowsException <NotSupportedException>(
                () => rejeitadaActions.RejeitarPrestacao(prestacao, justificativa));
        }
Example #13
0
        internal PrestacaoViewModel MapeiaEntidadeParaViewModel(Prestacao prestacaoEntidade)
        {
            if (prestacaoEntidade == null)
            {
                return(new PrestacaoViewModel());
            }

            PrestacaoViewModel prestacao = new PrestacaoViewModel()
            {
                Id             = (int)prestacaoEntidade.Id,
                DataPagamento  = prestacaoEntidade.DataPagamento,
                DataVencimento = prestacaoEntidade.DataVencimento,
                Status         = prestacaoEntidade.Status,
                Valor          = prestacaoEntidade.Valor
            };

            return(prestacao);
        }
        public void PrestacaoPropertiesShouldBeSetAndRetrievedCorrectly()
        {
            var prestacao = new Prestacao
            {
                Aprovador             = Aprovador,
                AprovadorFinanceiro   = AprovadorFinanceiro,
                AprovadorFinanceiroId = AprovadorFinanceiroId,
                AprovadorId           = AprovadorId,
                Data                             = _data,
                Emitente                         = Emitente,
                EmitenteId                       = EmitenteId,
                Id                               = Id,
                ImagemComprovante                = ImagemComprovante,
                Justificativa                    = Justificativa,
                JustificativaAprovacao           = JustificativaAprovacao,
                JustificativaAprovacaoFinanceira = JustificativaAprovacaoFinanceira,
                Status                           = Status,
                StatusId                         = StatusId,
                Tipo                             = Tipo,
                TipoId                           = TipoId,
                Titulo                           = Titulo,
                Valor                            = Valor
            };

            Assert.AreEqual(prestacao.Aprovador, Aprovador);
            Assert.AreEqual(prestacao.AprovadorFinanceiro, AprovadorFinanceiro);
            Assert.AreEqual(prestacao.AprovadorFinanceiroId, AprovadorFinanceiroId);
            Assert.AreEqual(prestacao.AprovadorId, AprovadorId);
            Assert.AreEqual(prestacao.Data, _data);
            Assert.AreEqual(prestacao.Emitente, Emitente);
            Assert.AreEqual(prestacao.EmitenteId, EmitenteId);
            Assert.AreEqual(prestacao.Id, Id);
            Assert.AreEqual(prestacao.ImagemComprovante, ImagemComprovante);
            Assert.AreEqual(prestacao.Justificativa, Justificativa);
            Assert.AreEqual(prestacao.JustificativaAprovacao, JustificativaAprovacao);
            Assert.AreEqual(prestacao.JustificativaAprovacaoFinanceira, JustificativaAprovacaoFinanceira);
            Assert.AreEqual(prestacao.Status, Status);
            Assert.AreEqual(prestacao.StatusId, StatusId);
            Assert.AreEqual(prestacao.Id, Id);
            Assert.AreEqual(prestacao.Tipo, Tipo);
            Assert.AreEqual(prestacao.TipoId, TipoId);
            Assert.AreEqual(prestacao.Titulo, Titulo);
            Assert.AreEqual(prestacao.Valor, Valor);
        }
        public void PrestacaoGetByIdShouldBeCalledCorrectly()
        {
            // Arrange

            var       prestacao = new Prestacao();
            const int id        = 7;


            var prestacaoRepository = Mock.Of <IPrestacaoRepository>(m => m.GetById(id) == prestacao);

            var prestacaoService =
                new PrestacaoService(prestacaoRepository, Mock.Of <IEmailService>(), Mock.Of <IPrestacaoStatusActionsFactory>());

            // Act
            var result = prestacaoService.GetById(id);

            // Assert
            result.IsSameOrEqualTo(prestacao);
        }
        public int Update(Prestacao prestacao)
        {
            if (prestacao == null)
            {
                throw new ArgumentNullException(nameof(prestacao));
            }

            try
            {
                _context.Update(prestacao);
            }
            catch (InvalidOperationException)
            {
                var originalEntity = _context.Find(prestacao.GetType(), prestacao.Id);
                _context.Entry(originalEntity).CurrentValues.SetValues(prestacao);
                _context.Update(originalEntity);
            }

            return(_context.SaveChanges());
        }
        public void ShouldCallCreatePrestacaoFromPrestaSysDbContext()
        {
            // Arrange
            const int expectedResult  = 1;
            var       prestacaoEntity = new Prestacao();
            var       dbContextMock   = new DbContextMock <PrestaSysDbContext>(DummyOptions);

            dbContextMock.Setup(s => s.Add(prestacaoEntity)).Returns(It.IsAny <EntityEntry <Prestacao> >());
            dbContextMock.Setup(s => s.SaveChanges()).Returns(expectedResult);

            var prestacaoRepository = new PrestacaoRepository(dbContextMock.Object);

            // Act
            var result = prestacaoRepository.Create(prestacaoEntity);

            // Assert
            dbContextMock.Verify(m => m.Add(prestacaoEntity), Times.Once());
            dbContextMock.Verify(m => m.SaveChanges(), Times.Once());
            result.Should().Be(expectedResult);
        }
        public void PrestacaoIRejeitarPrestacaoShouldBeCalledCorrectlyWhenInAprovacaoFinanceira()
        {
            // Arrange
            const string            titulo        = "Titulo";
            const string            email         = "*****@*****.**";
            const int               id            = 1;
            const PrestacaoStatuses tipoAprovacao = PrestacaoStatuses.EmAprovacaoFinanceira;
            const string            justificativa = "Teste Justificativa";

            var prestacao = new Prestacao
            {
                Id                    = id,
                Titulo                = titulo,
                EmitenteId            = 1,
                AprovadorId           = 2,
                AprovadorFinanceiroId = 3,
                StatusId              = (int)PrestacaoStatuses.EmAprovacaoFinanceira
            };


            var prestacaoRepository = Mock.Of <IPrestacaoRepository>(m => m.GetById(id) == prestacao);
            var factory             = Mock.Of <IPrestacaoStatusActionsFactory>(m => m.CreateObject(tipoAprovacao).GetEmailTo(prestacao) == email);

            Mock.Get(factory).Setup(m => m.CreateObject(tipoAprovacao).RejeitarPrestacao(prestacao, justificativa))
            .Callback(() => prestacao.StatusId = (int)PrestacaoStatuses.Rejeitada);

            var emailHelper = Mock.Of <IEmailService>(m => m.EnviarEmail(prestacao, (PrestacaoStatuses)prestacao.StatusId, email));

            var prestacaoService =
                new PrestacaoService(prestacaoRepository, emailHelper, factory);

            // Act
            prestacaoService.RejeitarPrestacao(prestacao.Id, justificativa, tipoAprovacao);

            // Assert

            Mock.Get(prestacaoRepository).Verify(m => m.Update(prestacao), Times.Once);
            Mock.Get(factory).Verify(m => m.CreateObject(tipoAprovacao).GetEmailTo(prestacao), Times.Once);
            Mock.Get(emailHelper).Verify(m => m.EnviarEmail(prestacao, (PrestacaoStatuses)prestacao.StatusId, email), Times.Once);
            prestacao.StatusId.Should().Be((int)PrestacaoStatuses.Rejeitada);
        }
Example #19
0
        // Realiza o cadastro de prestações de um contrato
        private List <Prestacao> PostPrestacao(Contrato contrato, int id)
        {
            List <Prestacao> prestacoes = new List <Prestacao>();
            var dataVencimento          = DateTime.Today.Date.AddDays(30);
            var dataPagamento           = DateTime.Today.Date.AddDays(25);

            for (var i = 0; i < contrato.QuantidadeParcelas; i++)
            {
                Prestacao prestacao = new Prestacao();
                prestacao.ContratoId = id;
                DefineDatas(i, dataPagamento, dataVencimento, prestacao);
                prestacao.Valor  = (double)contrato.ValorFinanciado / contrato.QuantidadeParcelas;;
                prestacao.Status = DefineStatus(prestacao);
                _context.Prestacoes.Add(prestacao);

                dataVencimento = dataVencimento.AddDays(30);
                dataPagamento  = dataPagamento.AddDays(25);
                prestacoes.Add(prestacao);
            }
            return(prestacoes);
        }
        public void RejeitarPrestacaoShouldBeCalledCorrectly()
        {
            // Arrange
            var prestacaoRepository = Mock.Of <IPrestacaoRepository>();
            var usuarioService      = Mock.Of <IUsuarioService>();

            var prestacao = new Prestacao {
                Id = 1, Titulo = "Teste"
            };
            const string justificativa = "Teste de Justificativa";

            var aprovacaoFinanceiraActions =
                new AprovacaoFinanceiraActions(prestacaoRepository, usuarioService);

            // Act
            aprovacaoFinanceiraActions.RejeitarPrestacao(prestacao, justificativa);

            // Assert
            prestacao.StatusId.Should().Be((int)PrestacaoStatuses.Rejeitada);
            prestacao.JustificativaAprovacaoFinanceira.Should().Be(justificativa);
        }
        public void PrestacaoCreateShouldBeCalledCorrectly()
        {
            // Arrange
            const int prestacaoToBeGet = 7;
            var       prestacao        = new Prestacao {
                Titulo = "Cristian"
            };


            var prestacaoRepository = Mock.Of <IPrestacaoRepository>(m => m.Create(prestacao) == prestacaoToBeGet);
            var factory             = Mock.Of <IPrestacaoStatusActionsFactory>(m => m.CreateObject(It.IsAny <PrestacaoStatuses>()).GetEmailTo(prestacao) == string.Empty);

            var prestacaoService =
                new PrestacaoService(prestacaoRepository, Mock.Of <IEmailService>(), factory);

            // Act
            var result = prestacaoService.Create(prestacao);

            // Assert
            result.IsSameOrEqualTo(prestacaoToBeGet);
        }
        protected void BtnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (TxtDataPagamento.Text.Trim().Equals(String.Empty))
                {
                    TxtDataPagamento.Text = "";
                    TxtDataPagamento.Focus();
                    throw new CampoNaoInformadoException("Prestação", "Data de Pagamento", true);
                }
                else
                {
                    Prestacao lPrestacao = PrestacaoBLL.Instance.BuscarPorId(Convert.ToInt32(Request.QueryString["id"]));
                    if (lPrestacao.DataPagamento != null)
                    {
                        Web.ExibeAlerta(Page, "Prestação´já foi paga!");
                    }
                    else if (DateTime.Parse(TxtDataPagamento.Text).Date < lPrestacao.Contrato.DataConcessao)
                    {
                        Web.ExibeAlerta(Page, "A data de pagamento não pode ser anterior a data de concessão");
                    }
                    else
                    {
                        lPrestacao.DataPagamento = DateTime.Parse(TxtDataPagamento.Text);

                        PrestacaoBLL.Instance.Persistir(lPrestacao);
                        Web.ExibeAlerta(Page, "Parcela Paga!", "Prestacoes.aspx?id=" + lPrestacao.Contrato.Id);
                        if (!(ContratoBLL.Instance.ExistePrestacaoAberta(lPrestacao.Contrato)))
                        {
                            ContratoBLL.Instance.LiquidarContrato(lPrestacao.Contrato);
                            Web.ExibeAlerta(Page, "Todas as parcelas foram pagas! Contrato Liquidado", "Prestacoes.aspx");
                        }
                    }
                }
            }
            catch (BusinessException ex)
            {
                Web.ExibeAlerta(Page, ex.Message);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Request.QueryString["id"] == null)
                {
                    Page.Response.Redirect("ContratosAtivos.aspx");
                }
                else
                {
                    try
                    {
                        Prestacao lPrestacao = PrestacaoBLL.Instance.BuscarPorId(Convert.ToInt32(Request.QueryString["id"]));
                        if (lPrestacao.DataPagamento != null)
                        {
                            Web.ExibeAlerta(Page, "Esta prestação já foi paga!", "Prestacoes.aspx?id=" + lPrestacao.Contrato.Id);
                        }
                        else if (lPrestacao.Contrato == null)
                        {
                            Web.ExibeAlerta(Page, "Operação não pode ser realizada!", "ContratosAtivos.aspx");
                        }
                        else
                        {
                            PrestacaoBLL.Instance.CorrigirPrestacao(lPrestacao);

                            lblDataVencimento.Text = lPrestacao.DataVencimento.ToString();
                            lblValorParcela.Text   = lPrestacao.ValorPrincipal.ToString();
                            lblValorCorrecao.Text  = lPrestacao.ValorCorrecao.ToString();
                            lblTotalPagar.Text     = lPrestacao.ValorPrestacao.ToString();
                            lblDataConcessao.Text  = lPrestacao.Contrato.DataConcessao.ToString(@"dd/MM/yyyy");
                        }
                    }
                    catch (BusinessException ex)
                    {
                        Web.ExibeAlerta(Page, ex.Message);
                    }
                }
            }
        }
        public void GetEmailToShouldReturnAprovadorFinanceiroId()
        {
            // Arrange
            var prestacaoRepository = Mock.Of <IPrestacaoRepository>();
            var usuarioService      = Mock.Of <IUsuarioService>();

            var prestacao = new Prestacao {
                Id = 1, Titulo = "Teste", AprovadorFinanceiroId = 2
            };
            var expectedUsuario = "*****@*****.**";

            Mock.Get(usuarioService).Setup(x => x.GetUsuarioEmailById(prestacao.AprovadorFinanceiroId)).Returns(expectedUsuario);

            var rejeitadaActions =
                new AprovacaoFinanceiraActions(prestacaoRepository, usuarioService);

            // Act
            var returnedUsuario = rejeitadaActions.GetEmailTo(prestacao);

            // Assert
            returnedUsuario.Should().Be(expectedUsuario);
        }
        public void GetEmailToShouldReturnEmitentId()
        {
            // Arrange
            var prestacaoRepository = Mock.Of <IPrestacaoRepository>();
            var usuarioService      = Mock.Of <IUsuarioService>();

            var prestacao = new Prestacao {
                Id = 1, Titulo = "Teste", EmitenteId = 2
            };
            var expectedUsuario = "*****@*****.**";

            Mock.Get(usuarioService).Setup(x => x.GetUsuarioEmailById(prestacao.EmitenteId)).Returns(expectedUsuario);

            var finalizadaActions =
                new FinalizadaActions(prestacaoRepository, usuarioService);

            // Act
            var returnedUsuario = finalizadaActions.GetEmailTo(prestacao);

            // Assert
            returnedUsuario.Should().Be(expectedUsuario);
        }
        public void PrestacaoIUpdatePrestacaoShouldBeCalledCorrectly()
        {
            // Arrange
            const string titulo    = "dasdsad";
            var          prestacao = new Prestacao {
                Titulo = titulo
            };

            const int id = 7;


            var prestacaoRepository = Mock.Of <IPrestacaoRepository>(m => m.Update(prestacao) == id);
            var factory             = Mock.Of <IPrestacaoStatusActionsFactory>(m => m.CreateObject(It.IsAny <PrestacaoStatuses>()).GetEmailTo(prestacao) == string.Empty);


            var prestacaoService =
                new PrestacaoService(prestacaoRepository, Mock.Of <IEmailService>(), factory);

            // Act
            prestacaoService.Update(prestacao);

            // Assert
            Mock.Get(prestacaoRepository).Verify(m => m.Update(prestacao), Times.Once);
        }
Example #27
0
 public string GetEmailTo(Prestacao prestacao)
 {
     return(_usuarioService.GetUsuarioEmailById(prestacao.EmitenteId));
 }
Example #28
0
 public void RejeitarPrestacao(Prestacao prestacao, string justificativa)
 {
     throw new NotSupportedException();
 }
 public int Create(Prestacao prestacao)
 {
     _context.Add(prestacao);
     return(_context.SaveChanges());
 }
Example #30
0
 public string GetEmailTo(Prestacao prestacao)
 {
     return(_usuarioService.GetUsuarioEmailById(prestacao.AprovadorFinanceiroId));
 }
Example #31
0
 public void RejeitarPrestacao(Prestacao prestacao, string justificativa)
 {
     prestacao.StatusId = (int)PrestacaoStatuses.Rejeitada;
     prestacao.JustificativaAprovacaoFinanceira = justificativa;
 }