Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
<Project>

<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />

<PropertyGroup>
<Authors>Julian Verdurmen</Authors>
<Product>JulianVerdurmen.SlnxValidator</Product>
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
<IsPackable>false</IsPackable>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryUrl>https://github.com/304NotModified/SLNX-validator</RepositoryUrl>
</PropertyGroup>
<PropertyGroup>
<Authors>Julian Verdurmen</Authors>
<Product>JulianVerdurmen.SlnxValidator</Product>
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
<IsPackable>false</IsPackable>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<RepositoryUrl>https://github.com/304NotModified/SLNX-validator</RepositoryUrl>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="$(MSBuildProjectName).Tests" />
</ItemGroup>

</Project>
7 changes: 7 additions & 0 deletions src/SLNX-validator.Core/FileSystem/ISlnxFileResolver.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace JulianVerdurmen.SlnxValidator.Core.FileSystem
{
public interface ISlnxFileResolver
{
IReadOnlyList<string> Resolve(string input);
}
}
2 changes: 1 addition & 1 deletion src/SLNX-validator.Core/FileSystem/SlnxFileResolver.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace JulianVerdurmen.SlnxValidator.Core.FileSystem;

public sealed class SlnxFileResolver(IFileSystem fileSystem)
internal sealed class SlnxFileResolver(IFileSystem fileSystem) : ISlnxFileResolver
{
/// <summary>
/// Resolves one or more .slnx file paths from the given input.
Expand Down
4 changes: 2 additions & 2 deletions src/SLNX-validator.Core/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ public static IServiceCollection AddSlnxValidator(this IServiceCollection servic
services.AddSingleton<ISonarReporter, SonarReporter>();
services.AddSingleton<ISlnxXsdProvider, SlnxXsdProvider>();
services.AddSingleton<IXsdValidator, XsdValidator>();
services.AddSingleton<Validation.SlnxValidator>();
services.AddSingleton<SlnxFileResolver>();
services.AddSingleton<ISlnxValidator, Validation.SlnxValidator>();
services.AddSingleton<ISlnxFileResolver, SlnxFileResolver>();
return services;
}
}
8 changes: 8 additions & 0 deletions src/SLNX-validator.Core/Validation/ISlnxValidator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using JulianVerdurmen.SlnxValidator.Core.ValidationResults;

namespace JulianVerdurmen.SlnxValidator.Core.Validation;

public interface ISlnxValidator
{
Task<ValidationResult> ValidateAsync(string slnxContent, string slnxDirectory, CancellationToken cancellationToken = default);
}
2 changes: 1 addition & 1 deletion src/SLNX-validator.Core/Validation/SlnxValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace JulianVerdurmen.SlnxValidator.Core.Validation;

public sealed class SlnxValidator(IFileSystem fileSystem, IXsdValidator xsdValidator)
internal sealed class SlnxValidator(IFileSystem fileSystem, IXsdValidator xsdValidator) : ISlnxValidator
{
/// <summary>
/// Validates a .slnx file against the XSD schema and checks that all referenced files exist on disk.
Expand Down
2 changes: 1 addition & 1 deletion src/SLNX-validator.Core/Validation/SlnxXsdProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace JulianVerdurmen.SlnxValidator.Core.Validation;

public sealed class SlnxXsdProvider : ISlnxXsdProvider
internal sealed class SlnxXsdProvider : ISlnxXsdProvider
{
// Source: https://github.com/microsoft/vs-solutionpersistence/blob/main/src/Microsoft.VisualStudio.SolutionPersistence/Serializer/Xml/Slnx.xsd
private const string XsdResourceName = "JulianVerdurmen.SlnxValidator.Slnx.xsd";
Expand Down
2 changes: 1 addition & 1 deletion src/SLNX-validator.Core/Validation/XsdValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace JulianVerdurmen.SlnxValidator.Core.Validation;

public sealed class XsdValidator(ISlnxXsdProvider xsdProvider) : IXsdValidator
internal sealed class XsdValidator(ISlnxXsdProvider xsdProvider) : IXsdValidator
{
public async Task ValidateAsync(string slnxContent, ValidationResult result, CancellationToken cancellationToken)
{
Expand Down
4 changes: 2 additions & 2 deletions src/SLNX-validator/ValidationCollector.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using JulianVerdurmen.SlnxValidator.Core.FileSystem;
using JulianVerdurmen.SlnxValidator.Core.Validation;
using JulianVerdurmen.SlnxValidator.Core.ValidationResults;
using CoreSlnxValidator = JulianVerdurmen.SlnxValidator.Core.Validation.SlnxValidator;

namespace JulianVerdurmen.SlnxValidator;

internal sealed class ValidationCollector(IFileSystem fileSystem, CoreSlnxValidator validator)
internal sealed class ValidationCollector(IFileSystem fileSystem, ISlnxValidator validator)
{
public async Task<IReadOnlyList<FileValidationResult>> CollectAsync(IReadOnlyList<string> files, CancellationToken cancellationToken)
{
Expand Down
2 changes: 1 addition & 1 deletion src/SLNX-validator/ValidatorRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace JulianVerdurmen.SlnxValidator;

internal sealed class ValidatorRunner(SlnxFileResolver resolver, ValidationCollector collector, ISonarReporter sonarReporter)
internal sealed class ValidatorRunner(ISlnxFileResolver resolver, ValidationCollector collector, ISonarReporter sonarReporter)
{
public async Task<int> RunAsync(string input, string? sonarqubeReportPath, bool continueOnError, CancellationToken cancellationToken)
{
Expand Down
1 change: 1 addition & 0 deletions tests/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.*" />
<PackageReference Include="AwesomeAssertions" Version="9.4.*" />
<PackageReference Include="Verify.TUnit" Version="31.*" />
<PackageReference Include="NSubstitute" Version="5.*" />
</ItemGroup>

</Project>
9 changes: 3 additions & 6 deletions tests/SLNX-validator.Tests/ValidatorRunnerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,16 @@
using JulianVerdurmen.SlnxValidator.Core.FileSystem;
using JulianVerdurmen.SlnxValidator.Core.SonarQubeReporting;
using JulianVerdurmen.SlnxValidator.Core.Validation;
using CoreSlnxValidator = JulianVerdurmen.SlnxValidator.Core.Validation.SlnxValidator;

using NSubstitute;
namespace JulianVerdurmen.SlnxValidator.Tests;

public class ValidatorRunnerTests
{
private static ValidatorRunner CreateRunner(IFileSystem fileSystem)
{
var resolver = new SlnxFileResolver(fileSystem);
var validator = new CoreSlnxValidator(fileSystem, new XsdValidator(new SlnxXsdProvider()));
var collector = new ValidationCollector(fileSystem, validator);
var collector = new ValidationCollector(fileSystem, Substitute.For<ISlnxValidator>());
var sonarReporter = new SonarReporter(fileSystem);
return new ValidatorRunner(resolver, collector, sonarReporter);
return new ValidatorRunner(Substitute.For<ISlnxFileResolver>(), collector, sonarReporter);
}

[Test]
Expand Down
Loading