Skip to content

Commit 5c2c308

Browse files
Move test assertions to AwesomeAssertions (#13)
* Initial plan * Move assertions to AwesomeAssertions, closes #8 Co-authored-by: 304NotModified <5808377+304NotModified@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: 304NotModified <5808377+304NotModified@users.noreply.github.com>
1 parent efcdcbf commit 5c2c308

4 files changed

Lines changed: 38 additions & 33 deletions

File tree

tests/Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
<ItemGroup>
1313
<PackageReference Include="TUnit" Version="1.17.*" />
14+
<PackageReference Include="AwesomeAssertions" Version="9.4.*" />
1415
</ItemGroup>
1516

1617
</Project>

tests/SLNX-validator.Core.Tests/SlnxValidatorTests.cs

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using AwesomeAssertions;
12
using JulianVerdurmen.SlnxValidator.Core.Validation;
23
using JulianVerdurmen.SlnxValidator.Core.ValidationResults;
34

@@ -20,7 +21,7 @@ public async Task ValidateAsync_EmptySolution_IsValid()
2021

2122
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
2223

23-
await Assert.That(result.IsValid).IsTrue();
24+
result.IsValid.Should().BeTrue();
2425
}
2526

2627
[Test]
@@ -32,9 +33,9 @@ this is not xml at all
3233

3334
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
3435

35-
await Assert.That(result.IsValid).IsFalse();
36-
await Assert.That(result.Errors[0].Code).IsEqualTo(ValidationErrorCode.InvalidXml);
37-
await Assert.That(result.Errors[0].Message).Contains("Invalid XML");
36+
result.IsValid.Should().BeFalse();
37+
result.Errors[0].Code.Should().Be(ValidationErrorCode.InvalidXml);
38+
result.Errors[0].Message.Should().Contain("Invalid XML");
3839
}
3940

4041
[Test]
@@ -48,8 +49,8 @@ public async Task ValidateAsync_XsdViolation_ReturnsXsdViolationError()
4849

4950
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
5051

51-
await Assert.That(result.IsValid).IsFalse();
52-
await Assert.That(result.Errors[0].Code).IsEqualTo(ValidationErrorCode.XsdViolation);
52+
result.IsValid.Should().BeFalse();
53+
result.Errors[0].Code.Should().Be(ValidationErrorCode.XsdViolation);
5354
}
5455

5556
[Test]
@@ -64,8 +65,8 @@ public async Task ValidateAsync_ProjectWithoutPathAttribute_ReturnsXsdViolationE
6465
// Path is use="required" in the XSD, so this is caught as an XSD violation
6566
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
6667

67-
await Assert.That(result.IsValid).IsFalse();
68-
await Assert.That(result.Errors[0].Code).IsEqualTo(ValidationErrorCode.XsdViolation);
68+
result.IsValid.Should().BeFalse();
69+
result.Errors[0].Code.Should().Be(ValidationErrorCode.XsdViolation);
6970
}
7071

7172
[Test]
@@ -81,9 +82,9 @@ public async Task ValidateAsync_MissingFileInFolder_ReturnsFileNotFoundError()
8182

8283
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
8384

84-
await Assert.That(result.IsValid).IsFalse();
85-
await Assert.That(result.Errors[0].Code).IsEqualTo(ValidationErrorCode.ReferencedFileNotFound);
86-
await Assert.That(result.Errors[0].Message).Contains("README.md");
85+
result.IsValid.Should().BeFalse();
86+
result.Errors[0].Code.Should().Be(ValidationErrorCode.ReferencedFileNotFound);
87+
result.Errors[0].Message.Should().Contain("README.md");
8788
}
8889

8990
[Test]
@@ -100,7 +101,7 @@ public async Task ValidateAsync_ExistingFileInFolder_IsValid()
100101
var result = await ValidatorWithFiles(Path.Combine(RepoRoot, "README.md"))
101102
.ValidateAsync(slnx, RepoRoot);
102103

103-
await Assert.That(result.IsValid).IsTrue();
104+
result.IsValid.Should().BeTrue();
104105
}
105106

106107
[Test]
@@ -117,10 +118,10 @@ public async Task ValidateAsync_MultipleErrors_AllReported()
117118

118119
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
119120

120-
await Assert.That(result.Errors.Count).IsEqualTo(2);
121+
result.Errors.Should().HaveCount(2);
121122
foreach (var error in result.Errors)
122123
{
123-
await Assert.That(error.Code).IsEqualTo(ValidationErrorCode.ReferencedFileNotFound);
124+
error.Code.Should().Be(ValidationErrorCode.ReferencedFileNotFound);
124125
}
125126
}
126127

@@ -137,20 +138,20 @@ public async Task ValidateAsync_WildcardInFilePath_ReturnsInvalidWildcardUsageEr
137138

138139
var result = await ValidatorWithFiles().ValidateAsync(slnx, RepoRoot);
139140

140-
await Assert.That(result.IsValid).IsFalse();
141-
await Assert.That(result.Errors[0].Code).IsEqualTo(ValidationErrorCode.InvalidWildcardUsage);
142-
await Assert.That(result.Errors[0].Message).Contains("docs/*.md");
141+
result.IsValid.Should().BeFalse();
142+
result.Errors[0].Code.Should().Be(ValidationErrorCode.InvalidWildcardUsage);
143+
result.Errors[0].Message.Should().Contain("docs/*.md");
143144
}
144145

145146
[Test]
146147
public async Task ValidationErrorCode_ToCode_ReturnsPrefixedCode()
147148
{
148-
await Assert.That(ValidationErrorCode.FileNotFound.ToCode()).IsEqualTo("SLNX0001");
149-
await Assert.That(ValidationErrorCode.InvalidExtension.ToCode()).IsEqualTo("SLNX0002");
150-
await Assert.That(ValidationErrorCode.NotATextFile.ToCode()).IsEqualTo("SLNX0003");
151-
await Assert.That(ValidationErrorCode.InvalidXml.ToCode()).IsEqualTo("SLNX0010");
152-
await Assert.That(ValidationErrorCode.ReferencedFileNotFound.ToCode()).IsEqualTo("SLNX0011");
153-
await Assert.That(ValidationErrorCode.InvalidWildcardUsage.ToCode()).IsEqualTo("SLNX0012");
154-
await Assert.That(ValidationErrorCode.XsdViolation.ToCode()).IsEqualTo("SLNX0013");
149+
ValidationErrorCode.FileNotFound.ToCode().Should().Be("SLNX0001");
150+
ValidationErrorCode.InvalidExtension.ToCode().Should().Be("SLNX0002");
151+
ValidationErrorCode.NotATextFile.ToCode().Should().Be("SLNX0003");
152+
ValidationErrorCode.InvalidXml.ToCode().Should().Be("SLNX0010");
153+
ValidationErrorCode.ReferencedFileNotFound.ToCode().Should().Be("SLNX0011");
154+
ValidationErrorCode.InvalidWildcardUsage.ToCode().Should().Be("SLNX0012");
155+
ValidationErrorCode.XsdViolation.ToCode().Should().Be("SLNX0013");
155156
}
156157
}

tests/SLNX-validator.Core.Tests/SolutionIntegrationTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using AwesomeAssertions;
12
using JulianVerdurmen.SlnxValidator.Core.FileSystem;
23
using JulianVerdurmen.SlnxValidator.Core.Validation;
34
using CoreSlnxValidator = JulianVerdurmen.SlnxValidator.Core.Validation.SlnxValidator;
@@ -15,14 +16,14 @@ public async Task OwnSlnxFile_HasNoValidationErrors()
1516
directory = directory.Parent;
1617
}
1718

18-
await Assert.That(directory).IsNotNull();
19+
directory.Should().NotBeNull();
1920

2021
var slnxFile = directory!.EnumerateFiles("*.slnx").First();
2122
var content = await File.ReadAllTextAsync(slnxFile.FullName);
2223

2324
var validator = new CoreSlnxValidator(new RealFileSystem(), new XsdValidator());
2425
var result = await validator.ValidateAsync(content, slnxFile.DirectoryName!);
2526

26-
await Assert.That(result.Errors).IsEmpty();
27+
result.Errors.Should().BeEmpty();
2728
}
2829
}

tests/SLNX-validator.Tests/ProgramIntegrationTests.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using AwesomeAssertions;
2+
13
namespace JulianVerdurmen.SlnxValidator.Tests;
24

35
public class ProgramIntegrationTests
@@ -7,15 +9,15 @@ public async Task Invoke_WithNoArguments_ReturnsNonZeroExitCode()
79
{
810
var exitCode = await Program.Main([]);
911

10-
await Assert.That(exitCode).IsNotEqualTo(0);
12+
exitCode.Should().NotBe(0);
1113
}
1214

1315
[Test]
1416
public async Task Invoke_WithNonExistentFile_ReturnsNonZeroExitCode()
1517
{
1618
var exitCode = await Program.Main(["C:\\does\\not\\exist.slnx"]);
1719

18-
await Assert.That(exitCode).IsNotEqualTo(0);
20+
exitCode.Should().NotBe(0);
1921
}
2022

2123
[Test]
@@ -38,7 +40,7 @@ await File.WriteAllTextAsync(slnxPath, """
3840
{
3941
var exitCode = await Program.Main([tempDir]);
4042

41-
await Assert.That(exitCode).IsEqualTo(0);
43+
exitCode.Should().Be(0);
4244
}
4345
finally
4446
{
@@ -66,7 +68,7 @@ await File.WriteAllTextAsync(slnxPath, """
6668
{
6769
var exitCode = await Program.Main([$"{tempDir}/*.slnx"]);
6870

69-
await Assert.That(exitCode).IsEqualTo(0);
71+
exitCode.Should().Be(0);
7072
}
7173
finally
7274
{
@@ -94,7 +96,7 @@ await File.WriteAllTextAsync(slnxPath, """
9496
{
9597
var exitCode = await Program.Main([slnxPath]);
9698

97-
await Assert.That(exitCode).IsEqualTo(0);
99+
exitCode.Should().Be(0);
98100
}
99101
finally
100102
{
@@ -112,7 +114,7 @@ public async Task Invoke_WithNonSlnxExtension_ReturnsNonZeroExitCode()
112114
{
113115
var exitCode = await Program.Main([path]);
114116

115-
await Assert.That(exitCode).IsNotEqualTo(0);
117+
exitCode.Should().NotBe(0);
116118
}
117119
finally
118120
{
@@ -130,7 +132,7 @@ public async Task Invoke_WithBinaryFile_ReturnsNonZeroExitCode()
130132
{
131133
var exitCode = await Program.Main([path]);
132134

133-
await Assert.That(exitCode).IsNotEqualTo(0);
135+
exitCode.Should().NotBe(0);
134136
}
135137
finally
136138
{

0 commit comments

Comments
 (0)