public void Execute(IEnumerable <string> messages, string expectation, string because, params object[] becauseArgs) { using (new AssertionScope()) { var results = new AssertionResultSet(); foreach (string message in messages) { using (var scope = new AssertionScope()) { scope.Context = Context; message.Should().MatchEquivalentOf(expectation, because, becauseArgs); results.AddSet(message, scope.Discard()); } if (results.ContainsSuccessfulSet()) { break; } } foreach (string failure in results.SelectClosestMatchFor()) { AssertionScope.Current.FailWith(failure.Replace("{", "{{").Replace("}", "}}")); } } }
public void Execute(IEnumerable <string> messages, string expectation, string because, params object[] becauseArgs) { using var _ = new AssertionScope(); var results = new AssertionResultSet(); foreach (string message in messages) { using (var scope = new AssertionScope()) { scope.Context = new Lazy <string>(() => Context); message.Should().MatchEquivalentOf(expectation, because, becauseArgs); results.AddSet(message, scope.Discard()); } if (results.ContainsSuccessfulSet()) { break; } } foreach (string failure in results.SelectClosestMatchFor()) { string replacedCurlyBraces = failure.EscapePlaceholders(); AssertionScope.Current.FailWith(replacedCurlyBraces); } }