예제 #1
0
        public async Task not_return_null_list_of_candidates()
        {
            var candidatesResultsParser = new TestableCandidatesResultsParser(null);

            candidatesResultsParser.ParsedCandidates = new List <CandidateStatistics>();

            var result = await candidatesResultsParser.Parse(null, "");

            result.Value.Candidates.Should().NotBeNull();
        }
예제 #2
0
        public async Task not_return_null_list_of_candidates()
        {
            var candidatesResultsParser = new TestableCandidatesResultsParser(null);

            candidatesResultsParser.ParsedCandidates = new List <CandidateConfig>();

            var result = await candidatesResultsParser.Parse(null, "", new ElectionResultsFile());

            result.Value.Candidates.Should().NotBeNull();
        }
예제 #3
0
        public async Task set_percentages_for_each_candidate(int c1Votes, decimal c1Percentage,
                                                             int c2Votes, decimal c2Percentage,
                                                             int c3Votes, decimal c3Percentage)
        {
            var candidatesResultsParser = new TestableCandidatesResultsParser();

            candidatesResultsParser.ParsedCandidates = CreateListOfCandidatesWithVotes(c1Votes, c2Votes, c3Votes);
            var electionResultsData = new ElectionResultsData();

            await candidatesResultsParser.Parse(electionResultsData, "");

            electionResultsData.Candidates[0].Percentage.Should().Be(c1Percentage);
            electionResultsData.Candidates[1].Percentage.Should().Be(c2Percentage);
            electionResultsData.Candidates[2].Percentage.Should().Be(c3Percentage);
        }
예제 #4
0
        public async Task not_return_null_list_of_candidates()
        {
            var source = Substitute.For <IElectionConfigurationSource>();

            source.GetElectionById("").ReturnsForAnyArgs(e => Result.Ok(new Election
            {
                Candidates = new List <CandidateConfig>()
            }));
            var candidatesResultsParser = new TestableCandidatesResultsParser(null, source);

            candidatesResultsParser.ParsedCandidates = new List <CandidateConfig>();

            var result = await candidatesResultsParser.Parse(ElectionResultsData.Default, "", new ElectionResultsFile());

            result.Value.Candidates.Should().NotBeNull();
        }
예제 #5
0
        public void set_percentages_for_each_candidate(int c1Votes, decimal c1Percentage,
                                                       int c2Votes, decimal c2Percentage,
                                                       int c3Votes, decimal c3Percentage)
        {
            var candidatesResultsParser = new TestableCandidatesResultsParser(null)
            {
                ParsedCandidates = CreateListOfCandidatesWithVotes(c1Votes, c2Votes, c3Votes)
            };
            var electionResultsData = new ElectionResultsData {
                Candidates = CreateListOfCandidatesWithVotes(c1Votes, c2Votes, c3Votes)
            };
            var sumOfVotes = candidatesResultsParser.ParsedCandidates.Sum(c => c.Votes);

            StatisticsAggregator.CalculatePercentagesForCandidates(electionResultsData, sumOfVotes);

            electionResultsData.Candidates[0].Percentage.Should().Be(c1Percentage);
            electionResultsData.Candidates[1].Percentage.Should().Be(c2Percentage);
            electionResultsData.Candidates[2].Percentage.Should().Be(c3Percentage);
        }