W3cubDocs

/CakePHP 4.4

Class MailConstraintBase

Base class for all mail assertion constraints

Abstract
Namespace: Cake\TestSuite\Constraint\Email

Property Summary

  • $at protected
    int|null

Method Summary

  • __construct() public

    Constructor

  • additionalFailureDescription() protected

    Return additional failure description where needed.

  • count() public

    Counts the number of constraint elements.

  • evaluate() public

    Evaluates the constraint for parameter $other.

  • exporter() protected
  • fail() protected

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

  • failureDescription() protected

    Returns the description of the failure.

  • failureDescriptionInContext() protected

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

  • getMessages() public

    Gets the email or emails to check

  • matches() protected

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

  • reduce() protected

    Reduces the sub-expression starting at $this by skipping degenerate sub-expression and returns first descendant constraint that starts a non-reducible sub-expression.

  • toString() public

    Returns a string representation of the object.

  • toStringInContext() protected

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

Method Detail

__construct() public

__construct(int|null $at = null): void

Constructor

Parameters

int|null $at optional

At

Returns

void

additionalFailureDescription() protected

additionalFailureDescription(mixed $other): string

Return additional failure description where needed.

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

Parameters

mixed $other

evaluated value or object

Returns

string

count() public

count(): int

Counts the number of constraint elements.

Returns

int

evaluate() public

evaluate(mixed $other, string $description = '', bool $returnResult = false): ?bool

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

$other
string $description optional
bool $returnResult optional

Returns

?bool

Throws

SebastianBergmann\RecursionContext\InvalidArgumentException

ExpectationFailedException

exporter() protected

exporter(): Exporter

Returns

Exporter

fail() protected

fail(mixed $other, string $description, ComparisonFailure $comparisonFailure = null): void

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

Parameters

mixed $other

evaluated value or object

string $description

Additional information about the test

ComparisonFailure $comparisonFailure optional

Returns

void

Throws

SebastianBergmann\RecursionContext\InvalidArgumentException

ExpectationFailedException

failureDescription() protected

failureDescription(mixed $other): string

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.

Parameters

mixed $other

evaluated value or object

Returns

string

Throws

SebastianBergmann\RecursionContext\InvalidArgumentException

failureDescriptionInContext() protected

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

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

the $operator of the expression

mixed $role

role of $this constraint in the $operator expression

mixed $other

evaluated value or object

Returns

string

getMessages() public

getMessages(): arrayCake\Mailer\Message>

Gets the email or emails to check

Returns

arrayCake\Mailer\Message>

matches() protected

matches(mixed $other): bool

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.

Parameters

mixed $other

value or object to evaluate

Returns

bool

reduce() protected

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.

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

Returns

self

toString() public

toString(): string

Returns a string representation of the object.

Returns

string

toStringInContext() protected

toStringInContext(Operator $operator, mixed $role): string

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

the $operator of the expression

mixed $role

role of $this constraint in the $operator expression

Returns

string

Property Detail

$at protected

Type

int|null

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.TestSuite.Constraint.Email.MailConstraintBase.html