diff --git a/Pipeline/Build.cs b/Pipeline/Build.cs index dc06fb472..30c5044b5 100644 --- a/Pipeline/Build.cs +++ b/Pipeline/Build.cs @@ -20,7 +20,7 @@ partial class Build : NukeBuild /// /// Afterward, you can update the package reference in `Directory.Packages.props` and reset this flag. /// - readonly BuildScope BuildScope = BuildScope.Default; + readonly BuildScope BuildScope = BuildScope.CoreOnly; [Parameter("Github Token")] readonly string GithubToken; [GitRepository] readonly GitRepository Repository; diff --git a/Source/aweXpect.Core/Core/ResultContext.cs b/Source/aweXpect.Core/Core/ResultContext.cs index 47e2148b2..a1d2b205f 100644 --- a/Source/aweXpect.Core/Core/ResultContext.cs +++ b/Source/aweXpect.Core/Core/ResultContext.cs @@ -9,8 +9,6 @@ namespace aweXpect.Core; /// public abstract class ResultContext { - internal ResultContext? _next; - /// /// A result context that is appended to a result error. /// diff --git a/Source/aweXpect.Core/Core/ResultContexts.cs b/Source/aweXpect.Core/Core/ResultContexts.cs index 44e2a8586..32b95af02 100644 --- a/Source/aweXpect.Core/Core/ResultContexts.cs +++ b/Source/aweXpect.Core/Core/ResultContexts.cs @@ -9,19 +9,12 @@ namespace aweXpect.Core; /// public class ResultContexts : IEnumerable { - private ResultContext? _first; + private readonly List _results = new(); private bool _isOpen = true; /// public IEnumerator GetEnumerator() - { - ResultContext? current = _first; - while (current != null) - { - yield return current; - current = current._next; - } - } + => _results.GetEnumerator(); /// IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); @@ -51,15 +44,7 @@ public ResultContexts Add(ResultContext context) { if (_isOpen) { - if (_first is null) - { - _first = context; - } - else - { - context._next = _first; - _first = context; - } + _results.Add(context); } return this; @@ -72,7 +57,7 @@ public ResultContexts Clear() { if (_isOpen) { - _first = null; + _results.Clear(); } return this; @@ -91,28 +76,7 @@ public ResultContexts Remove(Predicate predicate) { if (_isOpen) { - ResultContext? previous = null; - ResultContext? current = _first; - while (current != null) - { - if (predicate(current)) - { - if (previous == null) - { - _first = current._next; - } - else - { - previous._next = current._next; - } - } - else - { - previous = current; - } - - current = current._next; - } + _results.RemoveAll(predicate); } return this; diff --git a/Tests/aweXpect.Core.Tests/Core/Nodes/WhichNodeTests.cs b/Tests/aweXpect.Core.Tests/Core/Nodes/WhichNodeTests.cs index 6266e447c..95d34f794 100644 --- a/Tests/aweXpect.Core.Tests/Core/Nodes/WhichNodeTests.cs +++ b/Tests/aweXpect.Core.Tests/Core/Nodes/WhichNodeTests.cs @@ -531,6 +531,9 @@ Expected that subject Actual: foo + + Expected: + bar """); } diff --git a/Tests/aweXpect.Core.Tests/Core/ResultContextsTests.cs b/Tests/aweXpect.Core.Tests/Core/ResultContextsTests.cs index 5ccf10879..bfa95bc38 100644 --- a/Tests/aweXpect.Core.Tests/Core/ResultContextsTests.cs +++ b/Tests/aweXpect.Core.Tests/Core/ResultContextsTests.cs @@ -1,4 +1,7 @@ -namespace aweXpect.Core.Tests.Core; +using System.Collections.Generic; +using System.Linq; + +namespace aweXpect.Core.Tests.Core; public sealed class ResultContextsTests { @@ -29,6 +32,18 @@ public async Task AddMultiple_ShouldAddContext() await That(sut).HasCount().EqualTo(5); } + [Fact] + public async Task AddSameContextMultipleTimes_ShouldStillWork() + { + var sharedContext = new ResultContext.Fixed("foo", "1"); + ResultContexts sut = new(); + sut.Add(sharedContext); + sut.Add(sharedContext); + sut.Add(sharedContext); + + await That(sut).All().ComplyWith(x => x.IsSameAs(sharedContext)); + } + [Fact] public async Task Clear_ShouldRemoveAllContexts() { diff --git a/Tests/aweXpect.Core.Tests/Customization/CustomizeFormattingTests.cs b/Tests/aweXpect.Core.Tests/Customization/CustomizeFormattingTests.cs index 37c4ddb07..5fae9a52b 100644 --- a/Tests/aweXpect.Core.Tests/Customization/CustomizeFormattingTests.cs +++ b/Tests/aweXpect.Core.Tests/Customization/CustomizeFormattingTests.cs @@ -73,6 +73,9 @@ Expected that actual Actual: this is some text with lots of words after the first difference to verify the customization setting + + Expected: + this is another text with lots of words after the first difference to verify the customization setting """); } @@ -88,6 +91,9 @@ Expected that actual Actual: this is some text with lots of words after the first difference to verify the customization setting + + Expected: + this is another text with lots of words after the first difference to verify the customization setting """); } } diff --git a/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.ExactMatchTypeTests.cs b/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.ExactMatchTypeTests.cs index 17b98d53b..a5c9b78a5 100644 --- a/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.ExactMatchTypeTests.cs +++ b/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.ExactMatchTypeTests.cs @@ -39,6 +39,10 @@ Expected that sut Actual: foo bar + + Expected: + FOO + BAR """).IgnoringNewlineStyle(); } @@ -62,6 +66,9 @@ Expected that sut Actual: foo + + Expected: + bar """); } @@ -86,6 +93,10 @@ Expected that sut Actual: foo bar + + Expected: + something + else """).IgnoringNewlineStyle(); } diff --git a/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.RegexMatchTypeTests.cs b/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.RegexMatchTypeTests.cs index db49b4d6e..408464bfd 100644 --- a/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.RegexMatchTypeTests.cs +++ b/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.RegexMatchTypeTests.cs @@ -39,6 +39,10 @@ Expected that sut Actual: foo bar + + Expected: + FOO + BAR """).IgnoringNewlineStyle(); } @@ -62,6 +66,9 @@ Expected that sut Actual: foo + + Expected: + bar """); } @@ -86,6 +93,10 @@ Expected that sut Actual: foo bar + + Expected: + something + else """).IgnoringNewlineStyle(); } diff --git a/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.WildcardMatchTypeTests.cs b/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.WildcardMatchTypeTests.cs index 3827af4eb..bf360c759 100644 --- a/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.WildcardMatchTypeTests.cs +++ b/Tests/aweXpect.Core.Tests/Options/StringEqualityOptionsTests.WildcardMatchTypeTests.cs @@ -39,6 +39,10 @@ Expected that sut Actual: foo bar + + Expected: + FOO + BAR """).IgnoringNewlineStyle(); } @@ -62,6 +66,9 @@ Expected that sut Actual: foo + + Expected: + bar """); } @@ -86,6 +93,10 @@ Expected that sut Actual: foo bar + + Expected: + something + else """).IgnoringNewlineStyle(); }