mirror of
https://github.com/pestphp/pest.git
synced 2026-03-07 00:07:22 +01:00
50 lines
949 B
PHP
50 lines
949 B
PHP
<?php
|
|
|
|
use function PHPUnit\Framework\assertEquals;
|
|
use function PHPUnit\Framework\assertInstanceOf;
|
|
|
|
class Number
|
|
{
|
|
public $value;
|
|
|
|
public function __construct($value)
|
|
{
|
|
$this->value = $value;
|
|
}
|
|
}
|
|
|
|
class Character
|
|
{
|
|
public $value;
|
|
|
|
public function __construct($value)
|
|
{
|
|
$this->value = $value;
|
|
}
|
|
}
|
|
|
|
expect()->pipe('toBe', function ($expected, $next) {
|
|
if ($this->value instanceof Character) {
|
|
assertInstanceOf(Character::class, $expected);
|
|
assertEquals($this->value->value, $expected->value);
|
|
|
|
return;
|
|
}
|
|
|
|
$next($expected);
|
|
});
|
|
|
|
expect()->intercept('toBe', Number::class, function ($expected) {
|
|
assertEquals($this->value->value, $expected->value);
|
|
});
|
|
|
|
test('pass', function () {
|
|
$number = new Number(1);
|
|
|
|
$letter = new Character('A');
|
|
|
|
expect($number)->toBe(new Number(1));
|
|
expect($letter)->toBe(new Character('A'));
|
|
expect(3)->toBe(3);
|
|
});
|