schemator-php

Форк
0
63 строки · 1.9 Кб
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Smoren\Schemator\Tests\Unit\ObjectAccessHelper;
6

7
use Codeception\Test\Unit;
8
use Smoren\Schemator\Helpers\ObjectAccessHelper;
9
use Smoren\Schemator\Tests\Unit\Fixtures\ClassWithAccessibleProperties;
10

11
class HasMethodTest extends Unit
12
{
13
    /**
14
     * @param object $input
15
     * @param string $key
16
     * @return void
17
     * @dataProvider fromObjectTrueDataProvider
18
     */
19
    public 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

28
    public function fromObjectTrueDataProvider(): array
29
    {
30
        return [
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
     */
48
    public 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

57
    public function fromObjectFalseDataProvider(): array
58
    {
59
        return [
60
            [new ClassWithAccessibleProperties(), 'unknownMethod'],
61
        ];
62
    }
63
}
64

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.