Documentation

SeeInDatabase extends Constraint
in package

Table of Contents

$data  : array<string|int, mixed>
Data used to compare results against.
$db  : ConnectionInterface
$show  : int
The number of results that will show in the database in case of failure.
$exporter  : Exporter|null
__construct()  : mixed
SeeInDatabase constructor.
count()  : int
Counts the number of constraint elements.
evaluate()  : bool|null
Evaluates the constraint for parameter $other.
failureDescription()  : string
Get the description of the failure
matches()  : bool
Check if data is found in the table
toString()  : string
Gets a string representation of the constraint
additionalFailureDescription()  : string
Return additional failure description where needed.
exporter()  : Exporter
fail()  : void
Throws an exception for the given compared value and test description.
failureDescriptionInContext()  : string
Returns the description of the failure when this constraint appears in context of an $operator expression.
getAdditionalInfo()  : string
Gets additional records similar to $data.
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.

Properties

$data

Data used to compare results against.

protected array<string|int, mixed> $data

$show

The number of results that will show in the database in case of failure.

protected int $show = 3

Methods

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
throws
InvalidArgumentException
throws
ExpectationFailedException
Return values
bool|null

failureDescription()

Get the description of the failure

public failureDescription(mixed $table) : string
Parameters
$table : mixed
Return values
string

matches()

Check if data is found in the table

public matches(mixed $table) : bool
Parameters
$table : mixed
Return values
bool

toString()

Gets a string representation of the constraint

public toString(int $options) : string
Parameters
$options : int
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

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
throws
InvalidArgumentException
throws
ExpectationFailedException
psalm-return

never-return

Return values
void

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 failue 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

getAdditionalInfo()

Gets additional records similar to $data.

protected getAdditionalInfo(string $table) : string
Parameters
$table : string
Return values
string

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

Search results