public void AddCoverageByTestMethod_AddCoverageByTestMethodForExistingMethod_CoverageInformationIsMerged() { var sut = new CodeFile("C:\\temp\\Program.cs", new int[0], new LineVisitStatus[0]); var testMethod = new TestMethod("TestFull", "Test"); var coverageByTrackedMethod = new CoverageByTrackedMethod() { Coverage = new int[] { -1, -1, -1, -1, 0, 0, 0, 1, 1, 1 }, LineVisitStatus = new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.NotCovered, LineVisitStatus.NotCovered, LineVisitStatus.Covered, LineVisitStatus.Covered, LineVisitStatus.Covered } }; var repeatedCoverageByTrackedMethod = new CoverageByTrackedMethod() { Coverage = new int[] { -1, 0, 1, -1, 1, 0, 1, -1, 1, 0 }, LineVisitStatus = new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered, LineVisitStatus.NotCoverable, LineVisitStatus.Covered, LineVisitStatus.NotCovered, LineVisitStatus.Covered, LineVisitStatus.NotCoverable, LineVisitStatus.Covered, LineVisitStatus.NotCovered } }; sut.AddCoverageByTestMethod(testMethod, coverageByTrackedMethod); sut.AddCoverageByTestMethod(testMethod, repeatedCoverageByTrackedMethod); Assert.Contains(testMethod, sut.TestMethods); // using AnalyseFile() to retrieve merged coverage by test method var lineAnalyses = sut.AnalyzeFile(new CachingFileReader(0)).Lines; var testMethodCoverage = lineAnalyses.Take(9).Select(l => l.LineCoverageByTestMethod).ToArray(); Assert.True(testMethodCoverage.All(coverage => coverage.ContainsKey(testMethod)), "All lines should be covered by given test method"); var actualLineVisits = testMethodCoverage.Select(c => c[testMethod].LineVisits).ToArray(); var actualLineVisitStatuses = testMethodCoverage.Select(c => c[testMethod].LineVisitStatus).ToArray(); Assert.Equal(new int[] { 0, 1, -1, 1, 0, 1, 1, 2, 1 }, actualLineVisits); Assert.Equal(new LineVisitStatus[] { LineVisitStatus.NotCovered, LineVisitStatus.Covered, LineVisitStatus.NotCoverable, LineVisitStatus.Covered, LineVisitStatus.NotCovered, LineVisitStatus.Covered, LineVisitStatus.Covered, LineVisitStatus.Covered, LineVisitStatus.Covered }, actualLineVisitStatuses); }
public void AnalyzeFile_ExistingFile_AnalysisIsReturned() { var sut = new CodeFile("C:\\temp\\Program.cs", new int[] { -2, -1, 0, 1 }); Assert.IsNull(sut.TotalLines); var fileAnalysis = sut.AnalyzeFile(); Assert.IsNotNull(fileAnalysis); Assert.IsNull(fileAnalysis.Error); Assert.AreEqual(fileAnalysis.Path, fileAnalysis.Path); Assert.AreEqual(26, sut.TotalLines); Assert.AreEqual(26, fileAnalysis.Lines.Count()); Assert.AreEqual(1, fileAnalysis.Lines.ElementAt(0).LineNumber); Assert.AreEqual(-1, fileAnalysis.Lines.ElementAt(0).LineVisits); Assert.AreEqual(LineVisitStatus.NotCoverable, fileAnalysis.Lines.ElementAt(0).LineVisitStatus); Assert.AreEqual(2, fileAnalysis.Lines.ElementAt(1).LineNumber); Assert.AreEqual(0, fileAnalysis.Lines.ElementAt(1).LineVisits); Assert.AreEqual(LineVisitStatus.NotCovered, fileAnalysis.Lines.ElementAt(1).LineVisitStatus); Assert.AreEqual(3, fileAnalysis.Lines.ElementAt(2).LineNumber); Assert.AreEqual(1, fileAnalysis.Lines.ElementAt(2).LineVisits); Assert.AreEqual(LineVisitStatus.Covered, fileAnalysis.Lines.ElementAt(2).LineVisitStatus); }
public void AnalyzeFile_ExistingFile_AnalysisIsReturned() { var sut = new CodeFile("C:\\temp\\Program.cs", new int[] { -2, -1, 0, 1, 2 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.PartiallyCovered, LineVisitStatus.Covered }); Assert.Null(sut.TotalLines); var fileAnalysis = sut.AnalyzeFile(new CachingFileReader(0)); Assert.NotNull(fileAnalysis); Assert.Null(fileAnalysis.Error); Assert.Equal(fileAnalysis.Path, fileAnalysis.Path); Assert.Equal(84, sut.TotalLines); Assert.Equal(84, fileAnalysis.Lines.Count()); Assert.Equal(1, fileAnalysis.Lines.ElementAt(0).LineNumber); Assert.Equal(-1, fileAnalysis.Lines.ElementAt(0).LineVisits); Assert.Equal(LineVisitStatus.NotCoverable, fileAnalysis.Lines.ElementAt(0).LineVisitStatus); Assert.Equal(2, fileAnalysis.Lines.ElementAt(1).LineNumber); Assert.Equal(0, fileAnalysis.Lines.ElementAt(1).LineVisits); Assert.Equal(LineVisitStatus.NotCovered, fileAnalysis.Lines.ElementAt(1).LineVisitStatus); Assert.Equal(3, fileAnalysis.Lines.ElementAt(2).LineNumber); Assert.Equal(1, fileAnalysis.Lines.ElementAt(2).LineVisits); Assert.Equal(LineVisitStatus.PartiallyCovered, fileAnalysis.Lines.ElementAt(2).LineVisitStatus); Assert.Equal(4, fileAnalysis.Lines.ElementAt(3).LineNumber); Assert.Equal(2, fileAnalysis.Lines.ElementAt(3).LineVisits); Assert.Equal(LineVisitStatus.Covered, fileAnalysis.Lines.ElementAt(3).LineVisitStatus); }
public void AnalyzeFile_ExistingFileWithTrackedMethods_AnalysisIsReturned() { var sut = new CodeFile("C:\\temp\\Program.cs", new int[] { -2, -1, 0, 1 }); var testMethod = new TestMethod("TestFull", "Test"); sut.AddCoverageByTestMethod(testMethod, new int[] { -2, 1, -1, 0 }); var fileAnalysis = sut.AnalyzeFile(); Assert.AreEqual(1, fileAnalysis.Lines.First().LineCoverageByTestMethod[testMethod].LineVisits); Assert.AreEqual(LineVisitStatus.Covered, fileAnalysis.Lines.First().LineCoverageByTestMethod[testMethod].LineVisitStatus); }
public void AnalyzeFile_NonExistingFile_AnalysisIsReturned() { var sut = new CodeFile("C:\\temp\\Other.cs", new int[] { -2, -1, 0, 1 }); Assert.IsNull(sut.TotalLines); var fileAnalysis = sut.AnalyzeFile(); Assert.IsNotNull(fileAnalysis); Assert.IsNotNull(fileAnalysis.Error); Assert.AreEqual(fileAnalysis.Path, fileAnalysis.Path); Assert.IsNull(sut.TotalLines); Assert.AreEqual(0, fileAnalysis.Lines.Count()); }
public void AnalyzeFile_NonExistingFile_AnalysisIsReturned() { var sut = new CodeFile("C:\\temp\\Other.cs", new int[] { -2, -1, 0, 1 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered }); Assert.Null(sut.TotalLines); var fileAnalysis = sut.AnalyzeFile(new CachingFileReader(0)); Assert.NotNull(fileAnalysis); Assert.NotNull(fileAnalysis.Error); Assert.Equal(fileAnalysis.Path, fileAnalysis.Path); Assert.Null(sut.TotalLines); Assert.Empty(fileAnalysis.Lines); }
public void AnalyzeFile_ExistingFileWithTrackedMethods_AnalysisIsReturned() { var sut = new CodeFile("C:\\temp\\Program.cs", new int[] { -2, -1, 0, 1 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered }); var testMethod = new TestMethod("TestFull", "Test"); sut.AddCoverageByTestMethod(testMethod, new CoverageByTrackedMethod() { Coverage = new int[] { -2, 2, -1, 0 }, LineVisitStatus = new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.Covered, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered } }); var fileAnalysis = sut.AnalyzeFile(new CachingFileReader(0)); Assert.Equal(2, fileAnalysis.Lines.First().LineCoverageByTestMethod[testMethod].LineVisits); Assert.Equal(LineVisitStatus.Covered, fileAnalysis.Lines.First().LineCoverageByTestMethod[testMethod].LineVisitStatus); }