|
| 1 | +using System; |
| 2 | +using System.Collections.Generic; |
| 3 | +using System.Linq; |
| 4 | +using FineCodeCoverage.Engine.Model; |
| 5 | +using NUnit.Framework; |
| 6 | + |
| 7 | +namespace FineCodeCoverageTests |
| 8 | +{ |
| 9 | + internal class FileLineCoverage_Tests |
| 10 | + { |
| 11 | + [TestCaseSource(nameof(Cases))] |
| 12 | + public void GetLines_Test(IEnumerable<int> lineNumbers, int startLineNumber, int endLineNumber, IEnumerable<int> expectedLineNumbers) |
| 13 | + { |
| 14 | + var fileLineCoverage = new FileLineCoverage(); |
| 15 | + fileLineCoverage.Add("fp", lineNumbers.Select(n => new FineCodeCoverage.Engine.Cobertura.Line { Number = n })); |
| 16 | + fileLineCoverage.Completed(); |
| 17 | + |
| 18 | + var lines = fileLineCoverage.GetLines("fp", startLineNumber, endLineNumber); |
| 19 | + Assert.That(lines.Select(l => l.Number), Is.EqualTo(expectedLineNumbers)); |
| 20 | + } |
| 21 | + |
| 22 | + static object[] Cases = |
| 23 | + { |
| 24 | + new object[] { new int[] { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}, 19, 20, new int[]{ 19,20} }, |
| 25 | + new object[] { new int[] { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}, 12, 13, new int[]{ 12,13} }, |
| 26 | + new object[] { new int[] { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}, 6, 7, new int[]{ 6,7} }, |
| 27 | + new object[] {Enumerable.Empty<int>(), 0, 4,Enumerable.Empty<int>() }, |
| 28 | + new object[] { new int[] { 3,2,1}, 0, 4, new int[]{ 1,2,3} }, |
| 29 | + new object[] { new int[] { 3,2,1}, 0, 3, new int[]{ 1,2,3} }, |
| 30 | + new object[] { new int[] { 3,2,1}, 1, 2, new int[]{ 1,2} }, |
| 31 | + new object[] { new int[] { 3,2,1}, 2, 2, new int[]{ 2} }, |
| 32 | + new object[] { new int[] { 3,2,1}, 4, 5, Enumerable.Empty<int>() } |
| 33 | + }; |
| 34 | + } |
| 35 | +} |
0 commit comments