private List<Orcamento.Domain.Orcamento> ObterOrcamentosParaCarregamento()
        {
            var orcamentoDeViagem = new OrcamentoDeViagem
                {
                    Ano = 2014,
                    CentroDeCusto = centroDeCusto,
                    NomeOrcamento = "Orçamento de Viagem"
                };

            orcamentoDeViagem.Despesas = new List<DespesaDeViagem>();

            var diaria = new DiariaViagem {ValorTotal = 10, Quantidade = 3};

            diaria.Diaria = new Diaria();

            diaria.Diaria.Tickets = new List<Ticket>();
            diaria.Diaria.Tickets.Add(new Ticket {Valor = 10});

            orcamentoDeViagem.Despesas.Add(diaria);

            var viagens = new List<Orcamento.Domain.Orcamento>();

            viagens.Add(orcamentoDeViagem);

            return viagens;
        }
        public virtual OrcamentoDeViagem CriarOrcamentoDeViagem(List<Orcamento> orcamentosGerenciamento, Departamento departamento, CentroDeCusto centroDeCusto, int ano)
        {
            Contract.Requires(centroDeCusto != null, "Centro de custo não informado.");
            Contract.Requires(departamento != null, "Departamento não informado.");

            var viagens = Viagens.Todos().ToList();
            var diarias = Diarias.Todos().ToList();

            OrcamentoDeViagem orcamento = new OrcamentoDeViagem(departamento, centroDeCusto, ano);
            orcamento.CriarDespesas(viagens, diarias);

            if (orcamentosGerenciamento == null)
                orcamentosGerenciamento = new List<Orcamento>();

            GerenciadorDeOrcamentos gerenciador = new GerenciadorDeOrcamentos();

            if (!gerenciador.PodeCriarOrcamento(orcamentosGerenciamento, departamento, centroDeCusto, TipoOrcamentoEnum.Viagem))
                throw new Exception("Orçamento já tem dez versões");

            orcamentosGerenciamento.Add(orcamento);

            gerenciador.InformarNomeOrcamento(orcamentosGerenciamento, orcamento, departamento, centroDeCusto, TipoOrcamentoEnum.Viagem);

            foreach (var orcamentoGerenciamento in orcamentosGerenciamento)
            {
                Orcamentos.Salvar(orcamentoGerenciamento);
            }

            return orcamento;
        }
        public void AtribuirVersaoFinalComSucesso()
        {
            ServicoOrcamentoDeViagens servico = new ServicoOrcamentoDeViagens();

            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();

            var diarias = MockRepository.GenerateMock<IDiarias>();

            Diaria diaria = new Diaria();
            diaria.Cidade = new Cidade("ljk") {Descricao = "kjh"};
            Ticket ticket = new Ticket(new TipoTicket("1"), diaria.Cidade);
            ticket.Valor = 10;

            diaria.Tickets = new List<Ticket>();
            diaria.Tickets.Add(ticket);

            List<Diaria> listaDiarias = new List<Diaria>();

            listaDiarias.Add(diaria);

            diarias.Expect(c => c.Todos()).Return(listaDiarias);

            var viagens = MockRepository.GenerateMock<IViagens>();
            viagens.Expect(c => c.Todos()).Return(new List<Viagem>());

            servico.Orcamentos = orcamentos;
            servico.Diarias = diarias;
            servico.Viagens = viagens;

            Departamento departamento = new Hospital("Barra dor");

            var orcamento = new OrcamentoDeViagem(departamento, new CentroDeCusto("centroDeCusto"), 2014);

            DiariaViagem despesa = new DiariaViagem();
            despesa.ValorTotal = 10;
            despesa.Diaria = diaria;
            orcamento.Despesas.Add(despesa);

            servico.AtribuirVersaoFinal(orcamento);

            Assert.IsTrue(orcamento.VersaoFinal);
        }
        public void OrcamentoDeViagemCriadoComDuasCidadesDuasViagensEDuasDiariasDeveTerDespesasCountIgualAQuarentaEOito()
        {
            Departamento Ti = new Setor("TI");
            var gerenciamentoDeProjetos = new CentroDeCusto("Gerenciamento de Projetos");
            var recursosExternos = new Conta("RecursosExternos", new TipoConta{Id = (int)TipoContaEnum.Outros});
            var luz = new Conta("Luz", new TipoConta{Id = (int) TipoContaEnum.Outros});

            gerenciamentoDeProjetos.AdicionarConta(luz);
            gerenciamentoDeProjetos.AdicionarConta(recursosExternos);

            Ti.AdicionarCentroDeCusto(gerenciamentoDeProjetos);

            var orcamentoDeViagem = new OrcamentoDeViagem(Ti, gerenciamentoDeProjetos, 2014);
            InserirCidadesTiposTicketETicketEViagem();
            InserirDiarias();
            InserirViagens();
            InserirTipoTickets();
            InserirTickets();

            orcamentoDeViagem.CriarDespesas(Viagens, Diarias);
            Assert.IsTrue(orcamentoDeViagem.Despesas.Count == 48);
        }
        public void OrcamentoDeViagemCriadoDeveTerSetorDiferenteDeNulo()
        {
            Departamento Ti = new Setor("TI");
            var gerenciamentoDeProjetos = new CentroDeCusto("Gerenciamento de Projetos");
            var recursosExternos = new Conta("RecursosExternos", new TipoConta { Id = (int)TipoContaEnum.Outros });
            var luz = new Conta("Luz", new TipoConta { Id = (int)TipoContaEnum.Outros });

            gerenciamentoDeProjetos.AdicionarConta(luz);
            gerenciamentoDeProjetos.AdicionarConta(recursosExternos);

            Ti.AdicionarCentroDeCusto(gerenciamentoDeProjetos);

            var orcamentoDeViagem = new OrcamentoDeViagem(Ti, gerenciamentoDeProjetos, 2014);

            Assert.IsTrue(orcamentoDeViagem.Setor != null);
        }
 public void Salvar(OrcamentoDeViagem orcamento)
 {
     base.Salvar(orcamento);
 }
        public void DeletarOrcamentoComDoisOrcamentosNaListaPrimeiroItemDaListaDeveTerNomeDeVersaoUm()
        {
            ServicoOrcamentoDeViagens servico = new ServicoOrcamentoDeViagens();

            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();

            var diarias = MockRepository.GenerateMock<IDiarias>();
            diarias.Expect(c => c.Todos()).Return(new List<Diaria>());

            var viagens = MockRepository.GenerateMock<IViagens>();
            viagens.Expect(c => c.Todos()).Return(new List<Viagem>());

            servico.Orcamentos = orcamentos;
            servico.Diarias = diarias;
            servico.Viagens = viagens;

            Departamento departamento = new Setor("Barra dor");
            CentroDeCusto centroDeCusto = new CentroDeCusto("centroDeCusto");
            departamento.AdicionarCentroDeCusto(centroDeCusto);

            var orcamento = new OrcamentoDeViagem(departamento, centroDeCusto, 2014);

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

            Assert.IsTrue(orcamentosLista.FirstOrDefault().NomeOrcamento == "Versão1");
        }
        public void DeletarOrcamentoComDezOrcamentosNaListaDeveRetornarNomesDosORcamentosComSequenciaCerta()
        {
            ServicoOrcamentoDeViagens servico = new ServicoOrcamentoDeViagens();

            IOrcamentos orcamentos = MockRepository.GenerateMock<IOrcamentos>();
            orcamentos.Expect(o => o.Salvar(null)).IgnoreArguments();

            var diarias = MockRepository.GenerateMock<IDiarias>();
            diarias.Expect(c => c.Todos()).Return(new List<Diaria>());

            var viagens = MockRepository.GenerateMock<IViagens>();
            viagens.Expect(c => c.Todos()).Return(new List<Viagem>());

            servico.Orcamentos = orcamentos;
            servico.Diarias = diarias;
            servico.Viagens = viagens;

            Departamento departamento = new Setor("Barra dor");
            CentroDeCusto centroDeCusto = new CentroDeCusto("centroDeCusto");
            departamento.AdicionarCentroDeCusto(centroDeCusto);

            var orcamento = new OrcamentoDeViagem(departamento, centroDeCusto, 2014);

            var orcamentosLista = new List<Orcamento.Domain.Orcamento>();
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 2014));
            orcamentosLista.Add(new OrcamentoDeViagem(departamento, centroDeCusto, 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());
            }
        }