final class ArrayHasKey extends Constraint (View source)

Methods

mixed
__invoke(mixed $actual)

No description

bool|null
evaluate(mixed $other, string $description = '', bool $returnResult = false)

Evaluates the constraint for parameter $other.

int
count()

Counts the number of constraint elements.

bool
matches(mixed $other)

Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.

never
fail(mixed $other, string $description, ComparisonFailure|null $comparisonFailure = null)

Throws an exception for the given compared value and test description.

string
additionalFailureDescription(mixed $other)

Return additional failure description where needed.

string
failureDescription(mixed $other)

Returns the description of the failure.

string
toStringInContext(Operator $operator, mixed $role)

Returns a custom string representation of the constraint object when it appears in context of an $operator expression.

string
failureDescriptionInContext(Operator $operator, mixed $role, mixed $other)

Returns the description of the failure when this constraint appears in context of an $operator expression.

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.

string
valueToTypeStringFragment(mixed $value)

No description

__construct(mixed $key)

No description

string
toString()

Returns a string representation of the constraint.

Details

final mixed __invoke(mixed $actual)

No description

Parameters

mixed $actual

Return Value

mixed

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.

Parameters

mixed $other
string $description
bool $returnResult

Return Value

bool|null

Exceptions

ExpectationFailedException

int count()

Counts the number of constraint elements.

Return Value

int

protected bool matches(mixed $other)

Evaluates the constraint for parameter $other. Returns true if the constraint is met, false otherwise.

Parameters

mixed $other

Return Value

bool

protected never fail(mixed $other, string $description, ComparisonFailure|null $comparisonFailure = null)

Throws an exception for the given compared value and test description.

Parameters

mixed $other
string $description
ComparisonFailure|null $comparisonFailure

Return Value

never

Exceptions

ExpectationFailedException

protected string additionalFailureDescription(mixed $other)

Return additional failure description where needed.

The function can be overridden to provide additional failure information like a diff

Parameters

mixed $other

Return Value

string

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.

Parameters

mixed $other

Return Value

string

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.

Parameters

Operator $operator
mixed $role

Return Value

string

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.

Parameters

Operator $operator
mixed $role
mixed $other

Return Value

string

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

Return Value

Constraint

protected string valueToTypeStringFragment(mixed $value)

No description

Parameters

mixed $value

Return Value

string

__construct(mixed $key)

No description

Parameters

mixed $key

string toString()

Returns a string representation of the constraint.

Return Value

string