schemator-php
63 строки · 1.9 Кб
1<?php
2
3declare(strict_types=1);
4
5namespace Smoren\Schemator\Tests\Unit\ObjectAccessHelper;
6
7use Codeception\Test\Unit;
8use Smoren\Schemator\Helpers\ObjectAccessHelper;
9use Smoren\Schemator\Tests\Unit\Fixtures\ClassWithAccessibleProperties;
10
11class HasMethodTest extends Unit
12{
13/**
14* @param object $input
15* @param string $key
16* @return void
17* @dataProvider fromObjectTrueDataProvider
18*/
19public function testFromObjectTrue(object $input, string $key): void
20{
21// When
22$result = ObjectAccessHelper::hasMethod($input, $key);
23
24// Then
25$this->assertTrue($result);
26}
27
28public function fromObjectTrueDataProvider(): array
29{
30return [
31[new ClassWithAccessibleProperties(), 'getPublicPropertyWithMethodsAccess'],
32[new ClassWithAccessibleProperties(), 'setPublicPropertyWithMethodsAccess'],
33[new ClassWithAccessibleProperties(), 'getProtectedPropertyWithMethodsAccess'],
34[new ClassWithAccessibleProperties(), 'setProtectedPropertyWithMethodsAccess'],
35[new ClassWithAccessibleProperties(), 'getPrivatePropertyWithMethodsAccess'],
36[new ClassWithAccessibleProperties(), 'setPrivatePropertyWithMethodsAccess'],
37[new ClassWithAccessibleProperties(), 'privateMethod'],
38[new ClassWithAccessibleProperties(), 'privateMethod'],
39];
40}
41
42/**
43* @param object $input
44* @param string $key
45* @return void
46* @dataProvider fromObjectFalseDataProvider
47*/
48public function testFromObjectFalse(object $input, string $key): void
49{
50// When
51$result = ObjectAccessHelper::hasMethod($input, $key);
52
53// Then
54$this->assertFalse($result);
55}
56
57public function fromObjectFalseDataProvider(): array
58{
59return [
60[new ClassWithAccessibleProperties(), 'unknownMethod'],
61];
62}
63}
64