diff --git a/README.md b/README.md
new file mode 100644
index 0000000..abece53
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+# CodeOfChaos.Testing.TUnit
+Some extension methods on the TUnit testing framework.
\ No newline at end of file
diff --git a/src/CodeOfChaos.Testing.TUnit/CodeOfChaos.Testing.TUnit.csproj b/src/CodeOfChaos.Testing.TUnit/CodeOfChaos.Testing.TUnit.csproj
index a0e7415..e5d5e76 100644
--- a/src/CodeOfChaos.Testing.TUnit/CodeOfChaos.Testing.TUnit.csproj
+++ b/src/CodeOfChaos.Testing.TUnit/CodeOfChaos.Testing.TUnit.csproj
@@ -5,16 +5,37 @@
latest
enable
enable
+
+
+ CodeOfChaos.Testing.TUnit
+ 0.1.0
+ Anna Sas
+ A small library housing extensions to the TUnit framework
+ https://github.com/code-of-chaos/cs_code-of_chaos-testing-tunit
+ extensions tunit testing
+ true
+ true
+ true
+ embedded
+ LICENSE
+ README.md
+ icon.png
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticAssertCondition.cs b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticAssertCondition.cs
index d475242..82b9226 100644
--- a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticAssertCondition.cs
+++ b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticAssertCondition.cs
@@ -15,7 +15,7 @@ public class CompilationContainsDiagnosticAssertCondition(string expectedId)
protected override string GetExpectation() => $"to have a diagnostic with Id \"{ExpectedValue}\"";
- protected override AssertionResult GetResult(Compilation? actualValue, string? expectedValue) {
+ protected override Task GetResult(Compilation? actualValue, string? expectedValue) {
if (actualValue is null) return AssertionResult.Fail("Compilation is null");
if (expectedValue is null) return AssertionResult.Fail("Expected value is null");
diff --git a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticsExclusivelyAssertCondition.cs b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticsExclusivelyAssertCondition.cs
index c16f468..c90bba0 100644
--- a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticsExclusivelyAssertCondition.cs
+++ b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationContainsDiagnosticsExclusivelyAssertCondition.cs
@@ -15,7 +15,7 @@ public class CompilationContainsDiagnosticsExclusivelyAssertCondition(string[] e
protected override string GetExpectation() => $"to have a compilation output with the following Ids \"{ExpectedValue}\"";
- protected override AssertionResult GetResult(Compilation? compilation, string[]? expectedValues) {
+ protected override Task GetResult(Compilation? compilation, string[]? expectedValues) {
if (compilation is null) return AssertionResult.Fail("Compilation is null");
if (expectedValues is null) return AssertionResult.Fail("Expected value is null");
diff --git a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationDoesNotContainDiagnosticAssertCondition.cs b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationDoesNotContainDiagnosticAssertCondition.cs
index 7cbe016..150cfc5 100644
--- a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationDoesNotContainDiagnosticAssertCondition.cs
+++ b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationDoesNotContainDiagnosticAssertCondition.cs
@@ -15,7 +15,7 @@ public class CompilationDoesNotContainDiagnosticAssertCondition(string expectedI
protected override string GetExpectation() => $"to not have a diagnostic with Id \"{ExpectedValue}\"";
- protected override AssertionResult GetResult(Compilation? actualValue, string? expectedValue) {
+ protected override Task GetResult(Compilation? actualValue, string? expectedValue) {
if (actualValue is null) return AssertionResult.Fail("Compilation is null");
if (expectedValue is null) return AssertionResult.Fail("Expected value is null");
diff --git a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationHasSourceTextEqualToCondition.cs b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationHasSourceTextEqualToCondition.cs
index 7d6f679..be6d9fa 100644
--- a/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationHasSourceTextEqualToCondition.cs
+++ b/src/CodeOfChaos.Testing.TUnit/Conditions/CompilationHasSourceTextEqualToCondition.cs
@@ -3,6 +3,7 @@
// ---------------------------------------------------------------------------------------------------------------------
using Microsoft.CodeAnalysis;
using TUnit.Assertions.AssertConditions;
+using TUnit.Assertions.AssertConditions.String;
namespace CodeOfChaos.Testing.TUnit.Conditions;
@@ -11,9 +12,13 @@ namespace CodeOfChaos.Testing.TUnit.Conditions;
// ---------------------------------------------------------------------------------------------------------------------
public class CompilationHasSourceTextEqualToCondition(string filename, string expected, StringComparison stringComparison, bool ignoreWhiteSpace, bool withTrimming)
: ExpectedValueAssertCondition(expected) {
+ private readonly string _expected = expected;
+ // -----------------------------------------------------------------------------------------------------------------
+ // Methods
+ // -----------------------------------------------------------------------------------------------------------------
protected override string GetExpectation() => throw new NotImplementedException();
- protected override AssertionResult GetResult(GeneratorDriverRunResult? runResult, string? expectedValue) {
+ protected async override Task GetResult(GeneratorDriverRunResult? runResult, string? expectedValue) {
if (runResult is null) return AssertionResult.Fail("Compilation is null");
if (expectedValue is null) return AssertionResult.Fail("Expected string is null");
@@ -26,10 +31,17 @@ protected override AssertionResult GetResult(GeneratorDriverRunResult? runResult
if (generatedSource.Value.SourceText is not {} sourceText) return AssertionResult.Fail("Source text is null");
string sourceTextString = sourceText.ToString();
- if (ignoreWhiteSpace) sourceTextString = string.Join(string.Empty, sourceTextString.Where(c => !char.IsWhiteSpace(c)));
- if (withTrimming) sourceTextString = sourceTextString.Trim();
+ // Use the TUnit Equals String so it follows the same structure
+ var stringEqualsAssertCondition = new StringEqualsExpectedValueAssertCondition(_expected, stringComparison);
+ if(withTrimming) stringEqualsAssertCondition.WithTrimming();
+ if(ignoreWhiteSpace) stringEqualsAssertCondition.IgnoringWhitespace();
- return AssertionResult
- .FailIf(!string.Equals(sourceTextString, expectedValue, stringComparison), "Source text does not match");
+ return await stringEqualsAssertCondition.GetAssertionResult(sourceTextString, null);
+
+ // if (ignoreWhiteSpace) sourceTextString = string.Join(string.Empty, sourceTextString.Where(c => !char.IsWhiteSpace(c)));
+ // if (withTrimming) sourceTextString = sourceTextString.Trim();
+ //
+ // return AssertionResult
+ // .FailIf(!string.Equals(sourceTextString, expectedValue, stringComparison), "Source text does not match");
}
}
diff --git a/src/CodeOfChaos.Testing.TUnit/Extensions/TUnitExtensionsCompilation.cs b/src/CodeOfChaos.Testing.TUnit/Extensions/TUnitExtensionsCompilation.cs
index 94297ac..f026458 100644
--- a/src/CodeOfChaos.Testing.TUnit/Extensions/TUnitExtensionsCompilation.cs
+++ b/src/CodeOfChaos.Testing.TUnit/Extensions/TUnitExtensionsCompilation.cs
@@ -4,9 +4,9 @@
using CodeOfChaos.Testing.TUnit.Conditions;
using Microsoft.CodeAnalysis;
using System.Runtime.CompilerServices;
+using TUnit.Assertions.AssertConditions;
using TUnit.Assertions.AssertConditions.Interfaces;
using TUnit.Assertions.AssertionBuilders;
-using TUnit.Assertions.AssertionBuilders.Wrappers;
namespace CodeOfChaos.Testing.TUnit;
diff --git a/src/Tools.CodeOfChaos.Testing.TUnit/Program.cs b/src/Tools.CodeOfChaos.Testing.TUnit/Program.cs
index da89515..ada3673 100644
--- a/src/Tools.CodeOfChaos.Testing.TUnit/Program.cs
+++ b/src/Tools.CodeOfChaos.Testing.TUnit/Program.cs
@@ -23,7 +23,7 @@ public static async Task Main(string[] args) {
// Sometimes CLI params is not the answer.
// Code is the true saviour
string projects = string.Join(";",
- "TEMPLATE"
+ "CodeOfChaos.Testing.TUnit"
);
string oneLineArgs = InputHelper.ToOneLine(args).Replace("%PROJECTS%", projects);
diff --git a/src/Tools.CodeOfChaos.Testing.TUnit/Tools.CodeOfChaos.Testing.TUnit.csproj b/src/Tools.CodeOfChaos.Testing.TUnit/Tools.CodeOfChaos.Testing.TUnit.csproj
index d51bdeb..f552d73 100644
--- a/src/Tools.CodeOfChaos.Testing.TUnit/Tools.CodeOfChaos.Testing.TUnit.csproj
+++ b/src/Tools.CodeOfChaos.Testing.TUnit/Tools.CodeOfChaos.Testing.TUnit.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tests/Tests.CodeOfChaos.Testing.TUnit/TUnitExtensionTests.cs b/tests/Tests.CodeOfChaos.Testing.TUnit/TUnitExtensionTests.cs
index 70938d0..88db18a 100644
--- a/tests/Tests.CodeOfChaos.Testing.TUnit/TUnitExtensionTests.cs
+++ b/tests/Tests.CodeOfChaos.Testing.TUnit/TUnitExtensionTests.cs
@@ -3,6 +3,10 @@
// ---------------------------------------------------------------------------------------------------------------------
using CodeOfChaos.Testing.TUnit;
using Microsoft.CodeAnalysis;
+using System.Runtime.CompilerServices;
+using TUnit.Assertions.AssertConditions;
+using TUnit.Assertions.AssertConditions.Interfaces;
+using TUnit.Assertions.AssertionBuilders;
namespace Tests.CodeOfChaos.Testing.TUnit;
diff --git a/tests/Tests.CodeOfChaos.Testing.TUnit/Tests.CodeOfChaos.Testing.TUnit.csproj b/tests/Tests.CodeOfChaos.Testing.TUnit/Tests.CodeOfChaos.Testing.TUnit.csproj
index 5e6a8e9..e2d694c 100644
--- a/tests/Tests.CodeOfChaos.Testing.TUnit/Tests.CodeOfChaos.Testing.TUnit.csproj
+++ b/tests/Tests.CodeOfChaos.Testing.TUnit/Tests.CodeOfChaos.Testing.TUnit.csproj
@@ -13,7 +13,7 @@
-
+