public void should_return_Rodrigo_as_winner_when_only_Rodrigo_receives_votes()
        {
            //Given
            var election         = new Election();
            var candidateRodrigo = new Candidates("Rodrigo", "000.123.452-00", 0);
            var candidateMaria   = new Candidates("Maria", "112.342.543-88", 0);

            var cantidatesList = new List <Candidates>()
            {
                candidateRodrigo, candidateMaria
            };

            //When

            election.CreateCandidates(cantidatesList, "Pa$$w0rd"); // cria-se candidatos
                                                                   //joseId recebe o retorno do metodo GetCandidateIdByName por meio do election
            var rodrigoId = election.GetCandidateIdByName("Rodrigo");
            var mariaId   = election.GetCandidateIdByName("Maria");

            // Given
            candidateRodrigo.Vote();
            candidateRodrigo.Vote();

            // election.Vote(election.Candidates.ElementAt(0).Id);
            // election.Vote(election.Candidates.ElementAt(0).Id);
            // When

            var winners = election.GetWinners();

            //Then
            Assert.True(winners.Count == 1);
            Assert.Equal(election.Candidates.ElementAt(0).Id, winners[0].Id);
            Assert.Equal(2, winners[0].Votes);
        }
        public void should_return_both_candidates_when_occurs_draw()
        {
            var election         = new Election();
            var candidateRodrigo = new Candidates("Rodrigo", "000.123.452-00", 0);
            var candidateMaria   = new Candidates("Maria", "112.342.543-88", 0);

            var cantidatesList = new List <Candidates>()
            {
                candidateRodrigo, candidateMaria
            };

            //When

            election.CreateCandidates(cantidatesList, "Pa$$w0rd"); // cria-se candidatos

            var rodrigoId = election.GetCandidateIdByName("Rodrigo");
            var mariaId   = election.GetCandidateIdByName("Maria");

            //To vote
            candidateRodrigo.Vote();
            candidateMaria.Vote();

            // Quando / Ação
            var winners = election.GetWinners();

            // Deve / Asserções

            Assert.Equal(election.Candidates.ElementAt(0).Id, winners[0].Id);
            Assert.Equal(election.Candidates.ElementAt(1).Id, winners[1].Id);
            Assert.Equal(election.Candidates.ElementAt(0).Votes, 1);

            //Should
            election.Candidates.ElementAt(0).Votes.ShouldEqual(1);
            election.Candidates.ElementAt(0).Votes.ShouldNotBeSameAs(election.Candidates.ElementAt(1).Votes);
        }
Ejemplo n.º 3
0
        public void should_vote_twice_in_candidate_José()
        {
            var election = new Election();

            var jose = new Candidate("José", "009.923.970-14");
            var ana  = new Candidate("Ana", "852.710.650-73");

            var candidates = new List <Candidate>()
            {
                jose, ana
            };

            election.CreateCandidates(candidates, "Pa$$w0rd");

            var joseId = election.GetCandidateIdByName(jose.Name);
            var anaId  = election.GetCandidateIdByName(ana.Name);

            jose.Vote();
            jose.Vote();

            var candidateJose = election.Candidates.First(x => x.Id == joseId);
            var candidateAna  = election.Candidates.First(x => x.Id == anaId);

            Assert.Equal(2, candidateJose.Votes);
            Assert.Equal(0, candidateAna.Votes);
        }
        public void should_vote_twice_in_candidate_Jose()
        {
            //Given
            var election         = new Election();
            var candidateRodrigo = new Candidates("Rodrigo", "000.123.452-00", 0);
            var candidateMaria   = new Candidates("Maria", "112.342.543-88", 0);

            var cantidatesList = new List <Candidates>()
            {
                candidateRodrigo, candidateMaria
            };

            //When

            election.CreateCandidates(cantidatesList, "Pa$$w0rd"); // cria-se candidatos
                                                                   //joseId recebe o retorno do metodo GetCandidateIdByName por meio do election
            var rodrigoId = election.GetCandidateIdByName("Rodrigo");
            var mariaId   = election.GetCandidateIdByName("Maria");

            //when
            candidateRodrigo.Vote();
            candidateRodrigo.Vote();

            // election.Vote(election.Candidates.ElementAt(0).Id);
            // election.Vote(election.Candidates.ElementAt(0).Id);

            //Then
            Assert.Equal(2, election.Candidates.ElementAt(0).Votes);
            Assert.Equal(0, election.Candidates.ElementAt(1).Votes);
        }
Ejemplo n.º 5
0
        public void should_return_both_candidates_when_occurs_draw()
        {
            var election = new Election();

            var jose = new Candidate("José", "009.923.970-14");
            var ana  = new Candidate("Ana", "852.710.650-73");

            var candidates = new List <Candidate> {
                jose, ana
            };

            election.CreateCandidates(candidates, "Pa$$w0rd");
            var joseId = election.GetCandidateIdByName("José");
            var anaId  = election.GetCandidateIdByName("Ana");

            ana.Vote();
            jose.Vote();

            var winners = election.GetWinners();

            var candidateJose = winners.Find(x => x.Id == joseId);
            var candidateAna  = winners.Find(x => x.Id == anaId);

            Assert.Equal(1, candidateJose.Votes);
            Assert.Equal(1, candidateAna.Votes);
        }
        public void should_return_different_ids()
        {
            //Given
            var election = new Election();
            var candidateJose = new Candidate("José", "588.998.190-00", 0);
            var candidateMaria = new Candidate("Maria", "400.303.750-29", 0);

            var cantidatesList = new List<Candidate>()
            {
                candidateJose, candidateMaria
            };

            //When

            var candidates = election.CreateCandidates(cantidatesList, "Pa$$w0rd"); // cria-se candidatos

            //joseId recebe o retorno do metodo GetCandidateIdByName por meio do election
            var joseId = election.GetCandidateIdByName("José");
            var mariaId = election.GetCandidateIdByName("Maria");

            //Then
            Assert.NotEqual(joseId, mariaId);


        }
        public void Should_return_False_and_not_Vote_if_cpf_is_invalid()
        {
            var election = new Election();
            var candidateRodrigo = new Candidate("Rodrigo", "910.371.860-36", 0);
            var candidateMaria = new Candidate("Maria", "764.122.990-50", 0);

            var cantidatesList = new List<Candidate>()
            {
                candidateRodrigo, candidateMaria
            };

            //When

            election.CreateCandidates(cantidatesList, "Pa$$w0rd"); // cria-se candidatos

            var rodrigoId = election.GetCandidateIdByName("Rodrigo");
            var mariaId = election.GetCandidateIdByName("Maria");
            //To vote
            candidateRodrigo.Vote();
            candidateMaria.Vote();

            // Quando / Ação
            var winners = election.GetWinners();

            // Deve / Asserções

            Assert.Equal(election.Candidate.ElementAt(0).Id, winners[0].Id);
            Assert.Equal(election.Candidate.ElementAt(1).Id, winners[1].Id);
            Assert.Equal(election.Candidate.ElementAt(0).Votes, 1);

            //Should
            election.Candidate.ElementAt(0).Votes.ShouldEqual(1);
            election.Candidate.ElementAt(0).Votes.ShouldNotBeSameAs(election.Candidate.ElementAt(1).Votes);

        }
Ejemplo n.º 8
0
        public void should_create_candidates_when_password_is_correct()
        {
            var election   = new Election();
            var candidates = new List <Candidate> {
                new Candidate("José", "009.923.970-14"), new Candidate("Ana", "852.710.650-73")
            };

            var created = election.CreateCandidates(candidates, "Pa$$w0rd");

            var candidateJose = election.GetCandidateIdByName("José");
            var candidateAna  = election.GetCandidateIdByName("Ana");

            Assert.True(created);

            Assert.Equal(2, election.Candidates.Count);
            Assert.NotEqual(candidateJose, candidateAna);
        }
Ejemplo n.º 9
0
        public void should_return_Ana_as_winner_when_only_Ana_receives_votes()
        {
            var election = new Election();

            var ana  = new Candidate("Ana", "852.710.650-73");
            var jose = new Candidate("José", "077.286.334-18");

            var candidates = new List <Candidate>()
            {
                ana, jose
            };

            election.CreateCandidates(candidates, "Pa$$w0rd");

            var anaId = election.GetCandidateIdByName("Ana");

            ana.Vote();
            ana.Vote();

            var winners = election.GetWinners();

            Assert.Equal(1, winners.Count);
            Assert.Equal(anaId, winners[0].Id);
        }