public void CalcularReceitaBrutaOrcamentoHospitalarCOmUmSetorComDuasContasEContaDeQuantidadeEUmaDePorcentagemEvalorDaContaEmJaneiroIgualAUmEporcentagemIgualACinquentaEUnitarioIgualACemEValorComplexidadeIgualA10PorCentoValorReceitaLiuidaDeveSerIgualACentoEDez()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var Uti = new SetorHospitalar("UTI");
            var SubUtiAdulto = new SubSetorHospital("UTIAdulto");
            ContaHospital leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            ContaHospital ocupacao = new ContaHospital("Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;

            Uti.AdicionarSetor(SubUtiAdulto);
            Uti.AdicionarConta(leito);
            Uti.AdicionarConta(ocupacao);

            departamento.AdicionarSetor(Uti);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var leitoProducao = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            var ocupacaoProducao = orcamento.Servicos[1].Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            leitoProducao.Valor = 1;
            ocupacaoProducao.Valor = 50;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 100;

            orcamento.CalcularReceitaBruta(Tickets(100, orcamento));

            Assert.IsTrue(incremento.ReceitaBruta == 1550);
        }
        public void CalcularReceitaBrutaOrcamentoHospitalarCOmUmSetorComUmaContaEContaDeQuantidadeEvalorDaContaEmJaneiroIgualADoisEUnitarioIgualAQuinhentosValorReceitaBrutaDeveSerIgualAMil()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var producaoHospitalar = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            producaoHospitalar.Valor = 2;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 500;

            orcamento.CalcularReceitaBruta(Tickets(500, orcamento));

            Assert.IsTrue(incremento.ReceitaBruta == 1000);
        }
        // [Test]
        public void AoCriarPrimeiroOrcamentoNomeDeveSerIgualAVersaoUm()
        {
            GerenciadorDeOrcamentos gerenciamento = new GerenciadorDeOrcamentos();
            Departamento departamento = new Hospital("Barra Dor");
            var orcamento = new OrcamentoHospitalar(departamento, 2012);
            gerenciamento.InformarNomeOrcamento(new List<Orcamento.Domain.Orcamento>(), orcamento, departamento, TipoOrcamentoEnum.Hospitalar);

            Assert.IsTrue(orcamento.NomeOrcamento == "Versão 1");
        }
 public void AoCriarSegundoOrcamentoNomeDeveSerIgualAVersaoDois()
 {
     Departamento departamento = new Hospital("Barra Dor");
     var orcamento = new OrcamentoHospitalar(departamento, 2012);
     var listaOrcamentos = new List<Orcamento.Domain.Orcamento>();
     listaOrcamentos.Add(orcamento);
     GerenciadorDeOrcamentos gerenciamento = new GerenciadorDeOrcamentos();
     gerenciamento.InformarNomeOrcamento(listaOrcamentos, orcamento, departamento, TipoOrcamentoEnum.Hospitalar);
     Assert.IsTrue(orcamento.NomeOrcamento == "Versão 2");
 }
        public void AtribuirVersaoFinalComSucesso()
        {
            ServicoCriarOrcamentoHospitalar servico = new ServicoCriarOrcamentoHospitalar();
            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();
            orcamentos.Expect(o => o.ObterOrcamentoHospitalarFinal(null)).IgnoreArguments().Return(null);
            servico.Orcamentos = orcamentos;
            Departamento departamento = new Hospital("Barra dor");

            var orcamento = new OrcamentoHospitalar(departamento, 2014);
            servico.AtribuirVersaoFinal(orcamento);

            Assert.IsTrue(orcamento.VersaoFinal);
        }
        public void CriarOrcamentoHospitalarComUmSetorComUmaContaDeveTeServicosHospitalaresIgualAUm()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);
            Assert.IsTrue(orcamento.Servicos.Count == 1);
        }
        public void CriarOrcamentoHospitalarComUmSetorComUmaContaDeveTerIncrementosIgualADoze()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            Assert.IsTrue(orcamento.FatoresReceita.FirstOrDefault().Incrementos.Count == 12);
        }
        public void CalcularReceitaLiquidaOrcamentoHospitalarEmFevereiroComUmSetorComDuasContasEContaDeQuantidadeEUmaDePorcentagemEvalorDaContaEmJaneiroIgualAUmEporcentagemIgualANoventaEUnitarioIgualACemEValorComplexidadeIgualA10PorCentoNegativaValorReceitaLiuidaDeveSerIgualDoisMilSeticentosEnoventa()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var Uti = new SetorHospitalar("UTI");
            var SubUtiAdulto = new SubSetorHospital("UTIAdulto");
            ContaHospital leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            ContaHospital ocupacao = new ContaHospital("Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;

            Uti.AdicionarSetor(SubUtiAdulto);
            Uti.AdicionarConta(leito);
            Uti.AdicionarConta(ocupacao);

            departamento.AdicionarSetor(Uti);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var leitoProducao = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Fevereiro).FirstOrDefault();

            var ocupacaoProducao = orcamento.Servicos[1].Valores.Where(v => v.Mes == MesEnum.Fevereiro).FirstOrDefault();

            leitoProducao.Valor = 1;
            ocupacaoProducao.Valor = 100;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Complexidade = 10;
            incremento.Negativo = true;

            var fevereiro = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Fevereiro).FirstOrDefault();
            orcamento.CalcularReceitaLiquida(Tickets1(100, orcamento),null);

            Assert.IsTrue(fevereiro.ReceitaLiquida == 2520);
        }
        public void CalcularReceitaLiquidaOrcamentoHospitalarCOmUmSetorComUmaContaEContaDeQuantidadeEvalorDaContaEmJaneiroIgualAUmEUnitarioIgualACemEValorComplexidadeIgualA10PorCentoValorReceitaLiquidaDeveSerIgualACentoEDez()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var CentroCirurgico = new SetorHospitalar("Cirurgia");
            var SubCentroCirurgico = new SubSetorHospital("Centro Cirúrgico");
            ContaHospital Cirurgia = new ContaHospital("Cirurgia", TipoValorContaEnum.Quantidade);

            CentroCirurgico.AdicionarSetor(SubCentroCirurgico);
            CentroCirurgico.AdicionarConta(Cirurgia);

            departamento.AdicionarSetor(CentroCirurgico);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var producaoHospitalar = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            producaoHospitalar.Valor = 1;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 100;
            incremento.Complexidade = 10;

            orcamento.CalcularReceitaLiquida(Tickets(100, orcamento),null);

            Assert.IsTrue(incremento.ReceitaLiquida == 110);
        }
        public void CalcularReceitaBrutaOrcamentoHospitalarReceitaBrutaDeveSerIgualATrintaEUmMil()
        {
            Departamento departamento = new Hospital("Barra Dor");
            var Uti = new SetorHospitalar("UTI");
            var SubUtiAdulto = new SubSetorHospital("UTIAdulto");
            ContaHospital leito = new ContaHospital("Leito", TipoValorContaEnum.Quantidade);
            ContaHospital ocupacao = new ContaHospital("Ocupação", TipoValorContaEnum.Porcentagem);
            leito.MultiPlicaPorMes = true;

            Uti.AdicionarSetor(SubUtiAdulto);
            Uti.AdicionarConta(leito);
            Uti.AdicionarConta(ocupacao);

            departamento.AdicionarSetor(Uti);

            OrcamentoHospitalar orcamento = new OrcamentoHospitalar(departamento, 2014);

            var leitoProducao = orcamento.Servicos.FirstOrDefault().Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            var ocupacaoProducao = orcamento.Servicos[1].Valores.Where(v => v.Mes == MesEnum.Janeiro).FirstOrDefault();

            leitoProducao.Valor = 10;
            ocupacaoProducao.Valor = 100;

            var incremento = orcamento.FatoresReceita.FirstOrDefault().Incrementos.Where(i => i.Mes == MesEnum.Janeiro).FirstOrDefault();
            incremento.Ticket = 100;

            orcamento.CalcularReceitaBruta(Tickets(100, orcamento));

            Assert.IsTrue(incremento.ReceitaBruta == 31000);
        }
        public void DeletarOrcamentoComDoisOrcamentosNaListaPrimeiroItemDaListaDeveTerNomeDeVersaoUm()
        {
            ServicoCriarOrcamentoHospitalar servico = new ServicoCriarOrcamentoHospitalar();
            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();
            orcamentos.Expect(o => o.Deletar(null)).IgnoreArguments();
            servico.Orcamentos = orcamentos;
            Departamento departamento = new Hospital("Barra dor");

            var orcamento = new OrcamentoHospitalar(departamento, 2014);

            var orcamentosLista = new List<Orcamento.Domain.Orcamento>();
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(orcamento);
            servico.DeletarOrcamento(orcamento, orcamentosLista, departamento);

            Assert.IsTrue(orcamentosLista.FirstOrDefault().NomeOrcamento == "Versão1");
        }
        public void DeletarOrcamentoComDoisOrcamentosNaListaDeveRetornarApenasCountUm()
        {
            ServicoCriarOrcamentoHospitalar servico = new ServicoCriarOrcamentoHospitalar();
            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();
            orcamentos.Expect(o => o.Deletar(null)).IgnoreArguments();
            servico.Orcamentos = orcamentos;
            Departamento departamento = new Hospital("Barra dor");

            var orcamento = new OrcamentoHospitalar(departamento, 2014);

            var orcamentosLista = new List<Orcamento.Domain.Orcamento>();
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(orcamento);
            servico.DeletarOrcamento(orcamento, orcamentosLista, departamento);

            Assert.IsTrue(orcamentosLista.Count == 1);
        }
        public void DeletarOrcamentoComDezOrcamentosNaListaDeveRetornarNomesDosORcamentosComSequenciaCerta()
        {
            ServicoCriarOrcamentoHospitalar servico = new ServicoCriarOrcamentoHospitalar();
            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();
            orcamentos.Expect(o => o.Deletar(null)).IgnoreArguments();
            servico.Orcamentos = orcamentos;
            Departamento departamento = new Hospital("Barra dor");
            var orcamento = new OrcamentoHospitalar(departamento, 2014);

            var orcamentosLista = new List<Orcamento.Domain.Orcamento>();
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(new OrcamentoHospitalar(departamento, 2014));
            orcamentosLista.Add(orcamento);
            servico.DeletarOrcamento(orcamento, orcamentosLista, departamento);
            for (int i = 0; i < orcamentosLista.Count; i++)
            {
                Assert.AreEqual(orcamentosLista[i].NomeOrcamento, "Versão" + (i + 1).ToString());
            }
        }