1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
<?php declare(strict_types=1);
namespace DeepCopyTest\Matcher;
use DeepCopy\Matcher\PropertyMatcher;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
/**
* @covers \DeepCopy\Matcher\PropertyMatcher
*/
class PropertyMatcherTest extends TestCase
{
/**
* @dataProvider providePairs
*/
#[DataProvider('providePairs')]
public function test_it_matches_the_given_objects($object, $prop, $expected)
{
$matcher = new PropertyMatcher(X::class, 'foo');
$actual = $matcher->matches($object, $prop);
$this->assertEquals($expected, $actual);
}
public static function providePairs()
{
return [
'matching case' => [new X(), 'foo', true],
'match class, non matching prop' => [new X(), 'bar', false],
'match class, unknown prop' => [new X(), 'unknown', false],
'non matching class, matching prop' => [new Y(), 'unknown', false],
];
}
}
class X
{
public $foo;
public $bar;
}
class Y
{
public $foo;
}
|