Skip to content

Commit

Permalink
feat: restrict result object methods visibility (#91)
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas-Shephard authored Oct 21, 2024
1 parent 617a956 commit 870e93d
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 47 deletions.
6 changes: 1 addition & 5 deletions src/CoverageChecker/Results/Coverage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,8 @@ internal Coverage(IEnumerable<FileCoverage> files) : this() {
_files = files.ToList();
}

public FileCoverage? GetFile(string path, string? packageName = null) {
return Files.FirstOrDefault(file => file.Path == path && file.PackageName == packageName);
}

internal FileCoverage GetOrCreateFile(string filePath, string? packageName = null) {
FileCoverage? file = GetFile(filePath, packageName);
FileCoverage? file = Files.FirstOrDefault(file => file.Path == filePath && file.PackageName == packageName);

if (file is not null) return file;

Expand Down
6 changes: 1 addition & 5 deletions src/CoverageChecker/Results/FileCoverage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,8 @@ internal FileCoverage(IEnumerable<LineCoverage> lines, string path, string? pack
_lines = lines.ToList();
}

public LineCoverage? GetLine(int lineNumber) {
return Lines.FirstOrDefault(line => line.LineNumber == lineNumber);
}

internal void AddLine(int lineNumber, bool isCovered, int? branches = null, int? coveredBranches = null, string? className = null, string? methodName = null, string? methodSignature = null) {
LineCoverage? existingLine = GetLine(lineNumber);
LineCoverage? existingLine = Lines.FirstOrDefault(line => line.LineNumber == lineNumber);
LineCoverage newLine = new(lineNumber, isCovered, branches, coveredBranches, className, methodName, methodSignature);

if (existingLine is not null) {
Expand Down
3 changes: 0 additions & 3 deletions tests/CoverageChecker.Tests.Unit/ResultTests/CoverageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,8 @@ public void Coverage_GetOrCreateFile_ReturnsFileIfExists() {
coverageFile2.AddLine(3, false, 4, 3);

Assert.Multiple(() => {
Assert.That(coverage.GetFile($"{CoverageTestData.FilePath}-1"), Is.EqualTo(coverageFile1));
Assert.That(coverage.GetOrCreateFile($"{CoverageTestData.FilePath}-1"), Is.EqualTo(coverageFile1));
Assert.That(coverage.GetFile($"{CoverageTestData.FilePath}-2"), Is.EqualTo(coverageFile2));
Assert.That(coverage.GetOrCreateFile($"{CoverageTestData.FilePath}-2"), Is.EqualTo(coverageFile2));
Assert.That(coverage.GetFile($"{CoverageTestData.FilePath}-3"), Is.Null);
Assert.That(coverage.GetOrCreateFile($"{CoverageTestData.FilePath}-3").Lines, Is.Empty);
});
}
Expand Down
62 changes: 28 additions & 34 deletions tests/CoverageChecker.Tests.Unit/ResultTests/FileCoverageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,40 +27,24 @@ public void FileCoverage_ConstructorWithEmptyLines_ReturnsObject() {
});
}

[Test]
public void FileCoverage_GetLine_ReturnsLineIfExists() {
LineCoverage[] lines = [
new LineCoverage(1, true, 1, 0),
new LineCoverage(2, false, 6, 2),
new LineCoverage(3, true, 4, 3)
];

FileCoverage fileCoverage = new(lines, CoverageTestData.FilePath);

Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(1), Is.EqualTo(lines[0]));
Assert.That(fileCoverage.GetLine(2), Is.EqualTo(lines[1]));
Assert.That(fileCoverage.GetLine(3), Is.EqualTo(lines[2]));
Assert.That(fileCoverage.GetLine(4), Is.Null);
Assert.That(fileCoverage.Path, Is.EqualTo(CoverageTestData.FilePath));
Assert.That(fileCoverage.PackageName, Is.Null);
});
}

[Test]
public void FileCoverage_AddLine_LineExactlySame_DoesntUpdateLine() {
FileCoverage fileCoverage = new(CoverageTestData.FilePath);

fileCoverage.AddLine(1, true);

LineCoverage retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 1);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(1)?.IsCovered, Is.True);
Assert.That(fileCoverage.GetLine(1)?.CoveredBranches, Is.Null);
Assert.That(retrievedLine.IsCovered, Is.True);
Assert.That(retrievedLine.CoveredBranches, Is.Null);
});

Assert.DoesNotThrow(() => fileCoverage.AddLine(1, true));

retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 1);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(1)?.IsCovered, Is.True);
Assert.That(fileCoverage.GetLine(1)?.CoveredBranches, Is.Null);
Assert.That(retrievedLine.IsCovered, Is.True);
Assert.That(retrievedLine.CoveredBranches, Is.Null);
});
}

Expand All @@ -69,21 +53,27 @@ public void FileCoverage_AddLine_LineSubstantivelySame1_UpdatesLine() {
FileCoverage fileCoverage = new(CoverageTestData.FilePath);

fileCoverage.AddLine(1, true, 1, 0);

LineCoverage retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 1);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(1)?.IsCovered, Is.True);
Assert.That(fileCoverage.GetLine(1)?.CoveredBranches, Is.EqualTo(0));
Assert.That(retrievedLine.IsCovered, Is.True);
Assert.That(retrievedLine.CoveredBranches, Is.EqualTo(0));
});

Assert.DoesNotThrow(() => fileCoverage.AddLine(1, true, 1, 1));

retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 1);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(1)?.IsCovered, Is.True);
Assert.That(fileCoverage.GetLine(1)?.CoveredBranches, Is.EqualTo(1));
Assert.That(retrievedLine.IsCovered, Is.True);
Assert.That(retrievedLine.CoveredBranches, Is.EqualTo(1));
});

Assert.DoesNotThrow(() => fileCoverage.AddLine(1, false, 1, 0));

retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 1);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(1)?.IsCovered, Is.True);
Assert.That(fileCoverage.GetLine(1)?.CoveredBranches, Is.EqualTo(1));
Assert.That(retrievedLine.IsCovered, Is.True);
Assert.That(retrievedLine.CoveredBranches, Is.EqualTo(1));
});
}

Expand All @@ -92,15 +82,19 @@ public void FileCoverage_AddLine_LineSubstantivelySame2_UpdatesLine() {
FileCoverage fileCoverage = new(CoverageTestData.FilePath);

fileCoverage.AddLine(2, false);

LineCoverage retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 2);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(2)?.IsCovered, Is.False);
Assert.That(fileCoverage.GetLine(2)?.CoveredBranches, Is.Null);
Assert.That(retrievedLine.IsCovered, Is.False);
Assert.That(retrievedLine.CoveredBranches, Is.Null);
});

Assert.DoesNotThrow(() => fileCoverage.AddLine(2, true));

retrievedLine = fileCoverage.Lines.Single(line => line.LineNumber == 2);
Assert.Multiple(() => {
Assert.That(fileCoverage.GetLine(2)?.IsCovered, Is.True);
Assert.That(fileCoverage.GetLine(2)?.CoveredBranches, Is.Null);
Assert.That(retrievedLine.IsCovered, Is.True);
Assert.That(retrievedLine.CoveredBranches, Is.Null);
});
}

Expand Down

0 comments on commit 870e93d

Please sign in to comment.