public void Read_ReturnedTwoProvidedTips()
        {
            string       inputFileName = FilePathProvider.ProvideFullPathToFile("TestTips.json", inputDataDirectoryName);
            var          sut           = new ProvidedTipsReader(inputFileName);
            ProvidedTips providedTips  = sut.Read();

            Assert.That(providedTips.Count, Is.EqualTo(2));
        }
        public void Read_ReturnsProvidedTipsObject()
        {
            string       inputFileName = FilePathProvider.ProvideFullPathToFile("TestTips.json", inputDataDirectoryName);
            var          sut           = new ProvidedTipsReader(inputFileName);
            ProvidedTips providedTips  = sut.Read();

            Assert.That(providedTips, Is.InstanceOf <ProvidedTips>());
        }
        public void ProvidedTipsReaderObject_InitializedCorrectly()
        {
            //prepare
            string inputFileName = FilePathProvider.ProvideFullPathToFile("TestTips.json", inputDataDirectoryName);

            //act
            var sut = new ProvidedTipsReader(inputFileName);

            Console.Error.WriteLine($"Full file name: {sut.InputFileName}");

            //verify
            Assert.That(sut.InputFileName, Is.EqualTo(inputFileName));
        }
        public void Read_ReadoutValuesFitWithValuesInFile_Tip2()
        {
            string       inputFileName = FilePathProvider.ProvideFullPathToFile("TestTips.json", inputDataDirectoryName);
            var          sut           = new ProvidedTipsReader(inputFileName);
            ProvidedTips providedTips  = sut.Read();

            Assert.That(providedTips[1].TipperName, Is.EqualTo("Miso"));
            Assert.That(providedTips[1].Tips[0].CandidateName, Is.EqualTo("TestCandidate1"));
            Assert.That(providedTips[1].Tips[0].ElectionGainInPercent, Is.EqualTo(40));
            Assert.That(providedTips[1].Tips[1].CandidateName, Is.EqualTo("TestCandidate2"));
            Assert.That(providedTips[1].Tips[1].ElectionGainInPercent, Is.EqualTo(25));
            Assert.That(providedTips[1].Tips[2].CandidateName, Is.EqualTo("TestCandidate3"));
            Assert.That(providedTips[1].Tips[2].ElectionGainInPercent, Is.EqualTo(20));
        }
        public EvaluatedTips CountScore(int bonusForCorrectPlace, int countOfTippedPlaces)
        {
            var providedTips        = new ProvidedTipsReader(ProvidedTipsFileName).Read();
            int countOfProvidedTips = providedTips.Count;
            var evaluatedTips       = new EvaluatedTips();
            CandidateNameElectionGainPairs electionResults = new ElectionResultsReader(ElectionResultsFileName).Read();
            ScoreCounter scoreCounter = new ScoreCounter(electionResults, bonusForCorrectPlace);

            for (int i = 0; i < countOfProvidedTips; i++)
            {
                double score = scoreCounter.Count(providedTips[i], countOfTippedPlaces);
                evaluatedTips.Add(new EvaluatedTip(providedTips[i].TipperName, score));
            }
            return(evaluatedTips);
        }