<PackageReference Include="NUnit" Version="4.2.1" />

AndConstraint

AndConstraint succeeds only if both members succeed.
using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public class AndConstraint : BinaryConstraint { [System.Runtime.CompilerServices.Nullable(0)] private class AndConstraintResult : ConstraintResult { private readonly ConstraintResult _leftResult; private readonly ConstraintResult _rightResult; public AndConstraintResult(AndConstraint constraint, [System.Runtime.CompilerServices.Nullable(2)] object actual, ConstraintResult leftResult, ConstraintResult rightResult) : base(constraint, actual, leftResult.IsSuccess && rightResult.IsSuccess) { _leftResult = leftResult; _rightResult = rightResult; } public override void WriteActualValueTo(MessageWriter writer) { if (IsSuccess) base.WriteActualValueTo(writer); else if (!_leftResult.IsSuccess) { _leftResult.WriteActualValueTo(writer); } else { _rightResult.WriteActualValueTo(writer); } } public override void WriteAdditionalLinesTo(MessageWriter writer) { if (IsSuccess) base.WriteAdditionalLinesTo(writer); else if (!_leftResult.IsSuccess) { _leftResult.WriteAdditionalLinesTo(writer); } else { _rightResult.WriteAdditionalLinesTo(writer); } } } public override string Description => Left.Description + " and " + Right.Description; public AndConstraint(IConstraint left, IConstraint right) : base(left, right) { } public override ConstraintResult ApplyTo<[System.Runtime.CompilerServices.Nullable(2)] TActual>(TActual actual) { ConstraintResult constraintResult = Left.ApplyTo(actual); ConstraintResult rightResult = constraintResult.IsSuccess ? Right.ApplyTo(actual) : new ConstraintResult(Right, actual); return new AndConstraintResult(this, actual, constraintResult, rightResult); } } }