Refactor code structure and optimize performance across multiple modules

This commit is contained in:
StellaOps Bot
2025-12-26 20:03:22 +02:00
parent c786faae84
commit f10d83c444
1385 changed files with 69732 additions and 10280 deletions

View File

@@ -1,12 +1,14 @@
using Xunit;
using StellaOps.TestKit;
namespace StellaOps.Scanner.Analyzers.OS.Windows.Msi.Tests;
public class MsiDatabaseParserTests
{
private readonly MsiDatabaseParser _parser = new();
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithValidMsiFile_ExtractsMetadata()
{
// Arrange - Create a minimal valid OLE compound document
@@ -34,7 +36,8 @@ public class MsiDatabaseParserTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithVersionedFilename_ExtractsVersionFromName()
{
// Arrange
@@ -59,7 +62,8 @@ public class MsiDatabaseParserTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithSpaceVersionedFilename_ExtractsVersionFromName()
{
// Arrange
@@ -84,7 +88,8 @@ public class MsiDatabaseParserTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithUnversionedFilename_UsesDefaultVersion()
{
// Arrange
@@ -109,7 +114,8 @@ public class MsiDatabaseParserTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithNonExistentFile_ReturnsNull()
{
// Act
@@ -119,7 +125,8 @@ public class MsiDatabaseParserTests
Assert.Null(result);
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithInvalidMsiFile_ReturnsNull()
{
// Arrange - Create a file with invalid content
@@ -140,7 +147,8 @@ public class MsiDatabaseParserTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithEmptyPath_ReturnsNull()
{
// Act
@@ -150,7 +158,8 @@ public class MsiDatabaseParserTests
Assert.Null(result);
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void Parse_WithNullPath_ReturnsNull()
{
// Act
@@ -160,7 +169,8 @@ public class MsiDatabaseParserTests
Assert.Null(result);
}
[Theory]
[Trait("Category", TestCategories.Unit)]
[Theory]
[InlineData("Product-1.0.msi", "Product", "1.0")]
[InlineData("Product-1.0.0.msi", "Product", "1.0.0")]
[InlineData("Product-1.0.0.1.msi", "Product", "1.0.0.1")]

View File

@@ -3,6 +3,7 @@ using Microsoft.Extensions.Logging.Abstractions;
using StellaOps.Scanner.Analyzers.OS.Windows.Msi;
using Xunit;
using StellaOps.TestKit;
namespace StellaOps.Scanner.Analyzers.OS.Windows.Msi.Tests;
public class MsiPackageAnalyzerTests
@@ -25,13 +26,15 @@ public class MsiPackageAnalyzerTests
_logger);
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public void AnalyzerId_ReturnsCorrectValue()
{
Assert.Equal("windows-msi", _analyzer.AnalyzerId);
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_WithNoMsiDirectory_ReturnsEmptyList()
{
// Arrange
@@ -55,7 +58,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_WithMsiFiles_ReturnsPackageRecords()
{
// Arrange
@@ -94,7 +98,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_WithNestedMsiFiles_DiscoversMsisRecursively()
{
// Arrange
@@ -122,7 +127,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_WithUserAppDataCache_ScansMsisInUserDirectories()
{
// Arrange
@@ -149,7 +155,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_WithInvalidMsiFile_SkipsInvalidFile()
{
// Arrange
@@ -180,7 +187,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_ResultsAreSortedDeterministically()
{
// Arrange
@@ -212,7 +220,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_WithDuplicateMsiFiles_DeduplicatesByPath()
{
// Arrange
@@ -241,7 +250,8 @@ public class MsiPackageAnalyzerTests
}
}
[Fact]
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task AnalyzeAsync_SetsCorrectFileEvidence()
{
// Arrange