Exemple #1
0
        public void GetTotalLineCount_ShouldReturnSameValue_WhenCalledOnMultipleThreads()
        {
            const int NumCalls  = 50;
            var       totaliser = new TotalLineCount(EmbeddedFiles.Huge, EmbeddedFiles.Large, EmbeddedFiles.Medium);
            var       results   = Enumerable.Range(0, NumCalls).AsParallel().Select(i => totaliser.GetTotalLineCount()).ToList();

            Assert.That(results.Distinct().Count(), Is.EqualTo(1));
        }
Exemple #2
0
        public void GetTotalLineCount_ShouldOnlyReadEachFileOnce_WhenCalledTwiceOnSameThread()
        {
            var totaliser = new TotalLineCount(EmbeddedFiles.Huge, EmbeddedFiles.Large, EmbeddedFiles.Medium);

            totaliser.GetTotalLineCount();
            totaliser.GetTotalLineCount();
            Assert.That(totaliser.NumberOfCallsToReadAllLines, Is.EqualTo(1));
        }