public void ProvidedTipObject_InitializedCorrectly()
        {
            //prepare
            var tips = new CandidateNameElectionGainPairs {
                theFirstPlaceTip, theSecondPlaceTip, theThirdPlaceTip
            };

            //act
            var sut = new ProvidedTip(tipperName, tips);

            //assert
            Assert.That(sut.TipperName, Is.EqualTo(tipperName), "Tipper name is not as expected.");
            Assert.That(sut.Tips[0].CandidateName, Is.EqualTo(candidateOnFirstPosition),
                        "Candidate on first position not as expected.");
            Assert.That(sut.Tips[1].CandidateName, Is.EqualTo(candidateOnSecondPosition),
                        "Candidate on second position not as expected.");
            Assert.That(sut.Tips[2].CandidateName, Is.EqualTo(candidateOnThirdPosition),
                        "Candidate on third position not as expected.");
            Assert.That(sut.Tips[0].ElectionGainInPercent, Is.EqualTo(firstPositionPercent),
                        "Candidate on first position percent not as expected.");
            Assert.That(sut.Tips[1].ElectionGainInPercent, Is.EqualTo(secondPositionPercent),
                        "Candidate on second position percent not as expected.");
            Assert.That(sut.Tips[2].ElectionGainInPercent, Is.EqualTo(thirdPositionPercent),
                        "Candidate on third position percent not as expected.");
        }
        public void GetEnumerator_DoesNotThrowException()
        {
            //prepare
            var sut = new CandidateNameElectionGainPairs();

            //assert
            Assert.IsFalse(sut.Any());
        }
示例#3
0
 public ProvidedTip(string tipperName, CandidateNameElectionGainPairs tips)
 {
     TipperName = tipperName;
     if (tips.Count > MaximumCountOfTippedPlaces)
     {
         throw new ArgumentException($"Maximum {MaximumCountOfTippedPlaces} tipped places are allowed.", nameof(tips));
     }
     this.Tips = tips;
 }
        public void ReturnsInstanceOfListOfElectionResult()
        {
            //prepare
            var sut = new CandidateNameElectionGainPairs();

            //assert
            Assert.That(sut, Is.InstanceOf(typeof(List <CandidateNameElectionGainPair>)));
            Assert.That(sut, Is.InstanceOf <List <CandidateNameElectionGainPair> >());
            Assert.IsInstanceOf <List <CandidateNameElectionGainPair> >(sut);
        }
        public void ReturnsInstanceOfIList()
        {
            //prepare
            var sut = new CandidateNameElectionGainPairs();

            //assert
            Assert.That(sut, Is.InstanceOf(typeof(IList)));
            Assert.That(sut, Is.InstanceOf <IList>());
            Assert.IsInstanceOf <IList>(sut);
        }
示例#6
0
        public void Read_ReturnsCandidateNameElectionGainPairsObject()
        {
            //prepare
            var inputFileNameFullPath = FilePathProvider.ProvideFullPathToFile("TestResults.json", inputDataDirectoryName);
            var sut = new ElectionResultsReader(inputFileNameFullPath);

            //act
            CandidateNameElectionGainPairs candidateNameElectionGainPairs = sut.Read();

            //assert
            Assert.That(candidateNameElectionGainPairs, Is.TypeOf <CandidateNameElectionGainPairs>());
        }
        public void MaximumSixTipsAllowed()
        {
            //prepare
            var tips = new CandidateNameElectionGainPairs
            {
                theFirstPlaceTip,
                theSecondPlaceTip,
                theThirdPlaceTip,
                theFourthPlaceTip,
                theFifthPlaceTip,
                theSixthPlaceTip,
                new CandidateNameElectionGainPair("FourthCandidate", 10.0)
            };

            //act
            Assert.Throws <ArgumentException>(() => new ProvidedTip(tipperName, tips));
        }
示例#8
0
        public void Read_ReadOutValuesFitWithValuesInFile()
        {
            //prepare
            var inputFileNameFullPath = FilePathProvider.ProvideFullPathToFile("TestResults.json", inputDataDirectoryName);
            var sut = new ElectionResultsReader(inputFileNameFullPath);

            //act
            CandidateNameElectionGainPairs candidateNameElectionGainPairs = sut.Read();

            //assert
            Assert.That(candidateNameElectionGainPairs[0].CandidateName, Is.EqualTo("TestCandidate1"));
            Assert.That(candidateNameElectionGainPairs[1].CandidateName, Is.EqualTo("TestCandidate2"));
            Assert.That(candidateNameElectionGainPairs[2].CandidateName, Is.EqualTo("TestCandidate3"));
            Assert.That(candidateNameElectionGainPairs[0].ElectionGainInPercent, Is.EqualTo(40));
            Assert.That(candidateNameElectionGainPairs[1].ElectionGainInPercent, Is.EqualTo(30));
            Assert.That(candidateNameElectionGainPairs[2].ElectionGainInPercent, Is.EqualTo(20));
        }
示例#9
0
        public void Read_ReturnedThreeCandidateNameElectionGainPairs()
        {
            //prepare
            var inputFileNameFullPath = FilePathProvider.ProvideFullPathToFile("TestResults.json", inputDataDirectoryName);
            var sut = new ElectionResultsReader(inputFileNameFullPath);

            //act
            CandidateNameElectionGainPairs candidateNameElectionGainPairs = sut.Read();

            foreach (var candidateNameElectionGainPair in candidateNameElectionGainPairs)
            {
                Console.Error.WriteLine($"candidate name: {candidateNameElectionGainPair.CandidateName}");
                Console.Error.WriteLine($"result in percent : {candidateNameElectionGainPair.ElectionGainInPercent}");
            }

            //assert
            Assert.That(candidateNameElectionGainPairs.Count, Is.EqualTo(3));
        }
示例#10
0
 public ScoreCounter(CandidateNameElectionGainPairs electionResults, int bonusForCorrectPlace)
 {
     this.electionResults         = electionResults;
     this.bonusForCorrectPlaceTip = bonusForCorrectPlace;
 }