/// <summary> /// Apply both member constraints to an actual value, succeeding /// succeeding only if both of them succeed. /// </summary> /// <param name="actual">The actual value</param> /// <returns>True if the constraints both succeeded</returns> public override ConstraintResult ApplyTo <TActual>(TActual actual) { var leftResult = Left.ApplyTo(actual); var rightResult = leftResult.IsSuccess ? Right.ApplyTo(actual) : new ConstraintResult(Right, actual); return(new AndConstraintResult(this, actual, leftResult, rightResult)); }
/// <summary> /// Apply both member constraints to an actual value, succeeding /// succeeding only if both of them succeed. /// </summary> /// <param name="actual">The actual value</param> /// <returns>True if the constraints both succeeded</returns> protected override ConstraintResult ApplyConstraint <T>(T actual) { var leftResult = Left.ApplyTo(actual); var rightResult = leftResult.IsSuccess ? Right.ApplyTo(actual) : new ConstraintResult(Right, actual); return(new AndConstraintResult(this, actual, leftResult, rightResult)); }
/// <summary> /// Apply the member constraints to an actual value, succeeding /// succeeding as soon as one of them succeeds. /// </summary> /// <param name="actual">The actual value</param> /// <returns>True if either constraint succeeded</returns> public override ConstraintResult ApplyTo <TActual>(TActual actual) { bool hasSucceeded = Left.ApplyTo(actual).IsSuccess || Right.ApplyTo(actual).IsSuccess; return(new ConstraintResult(this, actual, hasSucceeded)); }
/// <summary> /// Apply the member constraints to an actual value, succeeding /// succeeding as soon as one of them succeeds. /// </summary> /// <param name="actual">The actual value</param> /// <returns>True if either constraint succeeded</returns> protected override ConstraintResult ApplyConstraint <T>(T actual) { bool hasSucceeded = Left.ApplyTo(actual).IsSuccess || Right.ApplyTo(actual).IsSuccess; return(new ConstraintResult(this, actual, hasSucceeded)); }