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)); }
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)); }