IsEqual
final class IsEqual extends Constraint (View source)
Methods
Evaluates the constraint for parameter $other.
Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.
Throws an exception for the given compared value and test description.
Return additional failure description where needed.
Returns a custom string representation of the constraint object when it appears in context of an $operator expression.
Returns the description of the failure when this constraint appears in context of an $operator expression.
Reduces the sub-expression starting at $this by skipping degenerate sub-expression and returns first descendant constraint that starts a non-reducible sub-expression.
No description
Returns a string representation of the constraint.
Details
final mixed
__invoke(mixed $actual)
No description
bool|null
evaluate(mixed $other, string $description = '', bool $returnResult = false)
Evaluates the constraint for parameter $other.
If $returnResult is set to false (the default), an exception is thrown in case of a failure. null is returned otherwise.
If $returnResult is true, the result of the evaluation is returned as a boolean value instead: true in case of success, false in case of a failure.
int
count()
Counts the number of constraint elements.
protected bool
matches(mixed $other)
Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.
This method can be overridden to implement the evaluation algorithm.
protected never
fail(mixed $other, string $description, ComparisonFailure|null $comparisonFailure = null)
Throws an exception for the given compared value and test description.
protected string
additionalFailureDescription(mixed $other)
Return additional failure description where needed.
The function can be overridden to provide additional failure information like a diff
protected string
failureDescription(mixed $other)
Returns the description of the failure.
The beginning of failure messages is "Failed asserting that" in most cases. This method should return the second part of that sentence.
To provide additional failure information additionalFailureDescription can be used.
protected string
toStringInContext(Operator $operator, mixed $role)
Returns a custom string representation of the constraint object when it appears in context of an $operator expression.
The purpose of this method is to provide meaningful descriptive string in context of operators such as LogicalNot. Native PHPUnit constraints are supported out of the box by LogicalNot, but externally developed ones had no way to provide correct strings in this context.
The method shall return empty string, when it does not handle customization by itself.
protected string
failureDescriptionInContext(Operator $operator, mixed $role, mixed $other)
Returns the description of the failure when this constraint appears in context of an $operator expression.
The purpose of this method is to provide meaningful failure description in context of operators such as LogicalNot. Native PHPUnit constraints are supported out of the box by LogicalNot, but externally developed ones had no way to provide correct messages in this context.
The method shall return empty string, when it does not handle customization by itself.
protected Constraint
reduce()
Reduces the sub-expression starting at $this by skipping degenerate sub-expression and returns first descendant constraint that starts a non-reducible sub-expression.
Returns $this for terminal constraints and for operators that start non-reducible sub-expression, or the nearest descendant of $this that starts a non-reducible sub-expression.
A constraint expression may be modelled as a tree with non-terminal nodes (operators) and terminal nodes. For example:
LogicalOr (operator, non-terminal)
+ LogicalAnd (operator, non-terminal)
| + IsType('int') (terminal)
| + GreaterThan(10) (terminal)
+ LogicalNot (operator, non-terminal)
+ IsType('array') (terminal)
A degenerate sub-expression is a part of the tree, that effectively does not contribute to the evaluation of the expression it appears in. An example of degenerate sub-expression is a BinaryOperator constructed with single operand or nested BinaryOperators, each with single operand. An expression involving a degenerate sub-expression is equivalent to a reduced expression with the degenerate sub-expression removed, for example
LogicalAnd (operator)
+ LogicalOr (degenerate operator)
| + LogicalAnd (degenerate operator)
| + IsType('int') (terminal)
+ GreaterThan(10) (terminal)
is equivalent to
LogicalAnd (operator)
+ IsType('int') (terminal)
+ GreaterThan(10) (terminal)
because the subexpression
+ LogicalOr
+ LogicalAnd
+ -
is degenerate. Calling reduce() on the LogicalOr object above, as well as on LogicalAnd, shall return the IsType('int') instance.
Other specific reductions can be implemented, for example cascade of LogicalNot operators
+ LogicalNot
+ LogicalNot
+LogicalNot
+ IsTrue
can be reduced to
LogicalNot
+ IsTrue
protected string
valueToTypeStringFragment(mixed $value)
No description
__construct(mixed $value)
No description
string
toString()
Returns a string representation of the constraint.