UnaryOperator
        
        extends Operator
    
    
            
            in package
            
        
    
    
    
        
        
    Tags
Table of Contents
- $constraint : Constraint
- $exporter : Exporter|null
- __construct() : mixed
- arity() : int
- Returns the number of operands (constraints).
- count() : int
- Counts the number of constraint elements.
- evaluate() : bool|null
- Evaluates the constraint for parameter $other.
- operator() : string
- Returns the name of this operator.
- precedence() : int
- Returns this operator's precedence.
- toString() : string
- Returns a string representation of the constraint.
- additionalFailureDescription() : string
- Return additional failure description where needed.
- checkConstraint() : Constraint
- Validates $constraint argument.
- constraint() : Constraint
- Provides access to $this->constraint for subclasses.
- constraintNeedsParentheses() : bool
- Returns true if the $constraint needs to be wrapped with parentheses.
- exporter() : Exporter
- fail() : void
- Throws an exception for the given compared value and test description.
- failureDescription() : string
- Returns the description of the failure.
- failureDescriptionInContext() : string
- Returns the description of the failure when this constraint appears in context of an $operator expression.
- matches() : bool
- Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.
- reduce() : self
- Reduces the sub-expression starting at $this by skipping degenerate sub-expression and returns first descendant constraint that starts a non-reducible sub-expression.
- toStringInContext() : string
- Returns a custom string representation of the constraint object when it appears in context of an $operator expression.
- transformString() : string
- Transforms string returned by the memeber constraint's toString() or failureDescription() such that it reflects constraint's participation in this expression.
Properties
$constraint
    private
        Constraint
    $constraint
    
    
    
    
$exporter
    private
        Exporter|null
    $exporter
    
    
    
    
Methods
__construct()
    public
                    __construct(Constraint|mixed $constraint) : mixed
    
        Parameters
- $constraint : Constraint|mixed
Return values
mixed —arity()
Returns the number of operands (constraints).
    public
                    arity() : int
    
    
    
        Return values
int —count()
Counts the number of constraint elements.
    public
                    count() : int
    
    
    
        Return values
int —evaluate()
Evaluates the constraint for parameter $other.
    public
                    evaluate(mixed $other[, string $description = '' ][, bool $returnResult = false ]) : bool|null
        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.
Parameters
- $other : mixed
- $description : string = ''
- $returnResult : bool = false
Tags
Return values
bool|null —operator()
Returns the name of this operator.
    public
    abstract                operator() : string
    
    
    
        Return values
string —precedence()
Returns this operator's precedence.
    public
    abstract                precedence() : int
    
    
    
    Tags
Return values
int —toString()
Returns a string representation of the constraint.
    public
                    toString() : string
    
    
    
        Return values
string —additionalFailureDescription()
Return additional failure description where needed.
    protected
                    additionalFailureDescription(mixed $other) : string
        The function can be overridden to provide additional failure information like a diff
Parameters
- $other : mixed
- 
                    evaluated value or object 
Return values
string —checkConstraint()
Validates $constraint argument.
    protected
                    checkConstraint(mixed $constraint) : Constraint
    
        Parameters
- $constraint : mixed
Return values
Constraint —constraint()
Provides access to $this->constraint for subclasses.
    protected
        final            constraint() : Constraint
    
    
    
        Return values
Constraint —constraintNeedsParentheses()
Returns true if the $constraint needs to be wrapped with parentheses.
    protected
                    constraintNeedsParentheses(Constraint $constraint) : bool
    
        Parameters
- $constraint : Constraint
Return values
bool —exporter()
    protected
                    exporter() : Exporter
        
    
    
        Return values
Exporter —fail()
Throws an exception for the given compared value and test description.
    protected
                    fail(mixed $other, string $description[, ComparisonFailure $comparisonFailure = null ]) : void
    
        Parameters
- $other : mixed
- 
                    evaluated value or object 
- $description : string
- 
                    Additional information about the test 
- $comparisonFailure : ComparisonFailure = null
Tags
Return values
void —failureDescription()
Returns the description of the failure.
    protected
                    failureDescription(mixed $other) : string
        The beginning of failure messages is "Failed asserting that" in most cases. This method should return the second part of that sentence.
Parameters
- $other : mixed
- 
                    evaluated value or object 
Tags
Return values
string —failureDescriptionInContext()
Returns the description of the failure when this constraint appears in context of an $operator expression.
    protected
                    failureDescriptionInContext(Operator $operator, mixed $role, mixed $other) : string
        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.
Parameters
- $operator : Operator
- 
                    the $operator of the expression 
- $role : mixed
- 
                    role of $this constraint in the $operator expression 
- $other : mixed
- 
                    evaluated value or object 
Return values
string —matches()
Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.
    protected
                    matches(mixed $other) : bool
        This method can be overridden to implement the evaluation algorithm.
Parameters
- $other : mixed
- 
                    value or object to evaluate 
Tags
Return values
bool —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.
    protected
                    reduce() : self
        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
Return values
self —toStringInContext()
Returns a custom string representation of the constraint object when it appears in context of an $operator expression.
    protected
                    toStringInContext(Operator $operator, mixed $role) : string
        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.
Parameters
- $operator : Operator
- 
                    the $operator of the expression 
- $role : mixed
- 
                    role of $this constraint in the $operator expression 
Return values
string —transformString()
Transforms string returned by the memeber constraint's toString() or failureDescription() such that it reflects constraint's participation in this expression.
    protected
                    transformString(string $string) : string
        The method may be overwritten in a subclass to apply default transformation in case the operand constraint does not provide its own custom strings via toStringInContext() or failureDescriptionInContext().
Parameters
- $string : string
- 
                    the string to be transformed