示例#1
0
 public Dia(DateTime dataVotacao, Dia diaAnterior)
 {
     this.DataVotacao = dataVotacao;
     this.DiaAnterior = diaAnterior;
     this.DataSistema = DateTime.Now.Date;
     Votos = new Dictionary<Colaborador, Restaurante>();
 }
        public void ObterContagemRestauranteMaisVotadoTeste()
        {
            // 1. Seta o dia com uma data válida.
            Dia dia = new Dia(new DateTime(2015, 08, 11), null);
            // 2. Cadastra 5 colaboradores
            Colaborador colaborador1 = new Colaborador(
                1000,
                "Colaborador Um",
                "*****@*****.**",
                "senha1");

            Colaborador colaborador2 = new Colaborador(
                2000,
                "Colaborador Dois",
                "*****@*****.**",
                "senha2");

            Colaborador colaborador3 = new Colaborador(
                3000,
                "Colaborador Três",
                "*****@*****.**",
                "senha3");

            Colaborador colaborador4 = new Colaborador(
                4000,
                "Colaborador Quatro",
                "*****@*****.**",
                "senha4");

            Colaborador colaborador5 = new Colaborador(
                5000,
                "Colaborador Cinco",
                "*****@*****.**",
                "senha5");

            dia.VerificarRestaurantes();
            // 3. Cadastra dois restaurantes Morte Lenta e Bandejão.
            Restaurante morteLenta = new Restaurante(
                1000,
                "Morte Lenta");

            Restaurante bandejao = new Restaurante(
                2000,
                "Bandejão");

            // 4. Contabiliza os votos de cada colaborador para seu restaurante preferido.
            // Voto(Colaborador, Restaurante)
            dia.Voto(colaborador3, bandejao);
            dia.Voto(colaborador1, morteLenta);
            dia.Voto(colaborador4, morteLenta);
            dia.Voto(colaborador2, morteLenta);
            dia.Voto(colaborador5, bandejao);

            // 5. Pergunta se o Nome do Restaurante mais votados é igual ao Bandejão.
            // O restaurante mais votado do dia é igual ao 3000 (Morte Lenta).
            // 5 votos contabilizados: 3 votos para o Morte lenta e 2 para o Bandejão.
            Assert.AreEqual(dia.ObterRestauranteMaisVotado(), morteLenta.Id);
        }
        // Para cada dia útil da semana, cria-se um objeto Dia, que por sua vez fará parte
        // numa lista de Votacao do respectivo dia.
        protected static Votacao CriarVotacao(DateTime diaSemana)
        {
            Votacao semanaVotacao = new Votacao();
            ConfigurarDatasVotacaoSemana(semanaVotacao, diaSemana);
            // O objeto dia é composto por Dia(DateTime dataVotacao, Dia diaAnterior)
            // Na segunda-feira o segundo parâmetro diaAnterior é null, pois o dia anterior é um domingo.
            Dia segundaFeira = new Dia(semanaVotacao.InicioVotacao, null);
            Dia tercaFeira = new Dia(semanaVotacao.InicioVotacao.AddDays(1), segundaFeira);
            Dia quartaFeira = new Dia(semanaVotacao.InicioVotacao.AddDays(2), tercaFeira);
            Dia quintaFeira = new Dia(semanaVotacao.InicioVotacao.AddDays(3), quartaFeira);
            Dia sextaFeira = new Dia(semanaVotacao.InicioVotacao.AddDays(4), quintaFeira);

            // Adiciona na lista de Dias.
            semanaVotacao.Dias.Add(segundaFeira);
            semanaVotacao.Dias.Add(tercaFeira);
            semanaVotacao.Dias.Add(quartaFeira);
            semanaVotacao.Dias.Add(quintaFeira);
            semanaVotacao.Dias.Add(sextaFeira);

            return semanaVotacao;
        }
        public void ObterRestauranteMaisVotadoTeste()
        {
            Dia dia = new Dia(new DateTime(2015, 08, 10), null);
            Colaborador colaborador1 = new Colaborador(
                1000,
                "Colaborador Um",
                "*****@*****.**",
                "senha1");

            Colaborador colaborador2 = new Colaborador(
                2000,
                "Colaborador Dois",
                "*****@*****.**",
                "senha2");

            Colaborador colaborador3 = new Colaborador(
                3000,
                "Colaborador Três",
                "*****@*****.**",
                "senha3");

            Colaborador colaborador4 = new Colaborador(
                4000,
                "Colaborador Quatro",
                "*****@*****.**",
                "senha4");

            Colaborador colaborador5 = new Colaborador(
                5000,
                "Colaborador Cinco",
                "*****@*****.**",
                "senha5");

            dia.VerificarRestaurantes();
            Restaurante morteLenta = new Restaurante(
                1000,
                "Morte Lenta");

            Restaurante bandejao = new Restaurante(
                2000,
                "Bandejão");

            Restaurante carpano = new Restaurante(
                6000,
                "Carpano Restaurante");

            Restaurante gangueCalcaBranca = new Restaurante(
                4000,
                "Gangue da Calça Branca");

            Restaurante tiaLouca = new Restaurante(
                3000,
                "Restaurante da Tia Louca");

            // Resultado: Bandejão = 3, Morte Lenta = 2, Carpano = 2, Gangue da Calça Branca = 1, Tia Louca = 2
            dia.Voto(colaborador1, morteLenta);
            dia.Voto(colaborador2, morteLenta);
            dia.Voto(colaborador3, bandejao);
            dia.Voto(colaborador4, carpano);
            dia.Voto(colaborador5, gangueCalcaBranca);

            dia.Voto(colaborador1, bandejao);
            dia.Voto(colaborador3, carpano);
            dia.Voto(colaborador2, bandejao);
            dia.Voto(colaborador5, tiaLouca);
            dia.Voto(colaborador4, tiaLouca);
            Assert.AreEqual(dia.ObterRestauranteMaisVotado().Id, bandejao.Id);
        }
        public void TestarVotacaoESeOColaboradorJaVotouTeste()
        {
            Dia dia = new Dia(new DateTime(2015, 08, 5), null);
            Colaborador colaborador1 = new Colaborador(
                1000,
                "Colaborador Um",
                "*****@*****.**",
                "senha1");

            // Todos os restaurantes disponíveis no dia.
            dia.VerificarRestaurantes();
            Restaurante morteLenta = new Restaurante(
                1000,
                "Morte Lenta");

            // Voto(Colaborador colaborador, Restaurante restaurante)
            dia.Voto(colaborador1, morteLenta);
            Assert.IsTrue(dia.ColaboradorVotou(colaborador1));
        }
        public void RestauranteEscolhidoUmaVezSomenteNaSemanaTeste()
        {
            // 1. Vamos setar o dia 27 de Agosto, quinta-feira. Null, significa que no dia anterior não
            // houve votação.
            Dia dia = new Dia(new DateTime(2015, 8, 27), null);
            // 2. Criamos os 5 colaboradores
            Colaborador colaborador1 = new Colaborador(
                1000,
                "Colaborador Um",
                "*****@*****.**",
                "senha1");

            Colaborador colaborador2 = new Colaborador(
                2000,
                "Colaborador Dois",
                "*****@*****.**",
                "senha2");

            Colaborador colaborador3 = new Colaborador(
                3000,
                "Colaborador Três",
                "*****@*****.**",
                "senha3");

            Colaborador colaborador4 = new Colaborador(
                4000,
                "Colaborador Quatro",
                "*****@*****.**",
                "senha4");

            Colaborador colaborador5 = new Colaborador(
                5000,
                "Colaborador Cinco",
                "*****@*****.**",
                "senha5");

            // 3. Verificamos os restaurantes do dia. Vai trazer os 6 cadastrados, pois o dia
            // foi passado como null. Observe o item 1. (Dia dia = new Dia(new DateTime(2015, 8, 27), null).
            dia.VerificarRestaurantes();
            // 4. Vamos criar dois para a votação.
            Restaurante morteLenta = new Restaurante(
                1000,
                "Morte Lenta");

            Restaurante bandejao = new Restaurante(
                2000,
                "Bandejão");
            // 5. Espera-se encontrar 6 restaurantes na lista dia.Restaurantes.
            Assert.AreEqual(dia.Restaurantes.Count, 6);
            // 6. Vamos votar agora duas vezes no "Morte Lenta" e uma vez no "Bandejão".
            dia.Voto(colaborador1, morteLenta);
            dia.Voto(colaborador2, morteLenta);
            dia.Voto(colaborador3, bandejao);

            // 7. O próximo dia será 28 de Agosto, sexta-feira.
            Dia proximoDia = new Dia(new DateTime(2015, 8, 28), dia);
            // 8. Nesta verificação serão passados 3 votos na sexta-feira. O mais votado foi o "Morte Lenta".
            // A lista de restaurantes retorna com 5, ou seja sem o "Morte Lenta".
            proximoDia.VerificarRestaurantes();
            Assert.AreEqual(proximoDia.Restaurantes.Count, 5);
        }