Passed
Push — master ( f5d81f...40d5c1 )
by Alexander
01:47
created

CallbackDependencyTest.php$0 ➔ testScopeWithObject()   A

Complexity

Conditions 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 15
rs 9.7666
cc 1
1
<?php
2
3
namespace Yiisoft\Cache\Tests\Dependency;
4
5
use Yiisoft\Cache\Dependency\CallbackDependency;
6
use Yiisoft\Cache\Dependency\Dependency;
7
8
class CallbackDependencyTest extends DependencyTestCase
9
{
10
    private function createDependency(callable $callback, $dependencyData): Dependency
11
    {
12
        $dependency = new CallbackDependency($callback);
13
        $this->setInaccessibleProperty($dependency, 'data', $dependencyData);
14
        return $dependency;
15
    }
16
17
    public function testPlainClosure(): void
18
    {
19
        $dependency = $this->createDependency(static function () {
20
            return true;
21
        }, true);
22
23
        $this->assertDependencyNotChanged($dependency);
24
    }
25
26
    public function testScopeWithObject(): void
27
    {
28
        $dataObject = new class() {
29
            public $value = 42;
30
        };
31
32
        $dependency = $this->createDependency(static function () use ($dataObject) {
33
            return $dataObject->value;
34
        }, 42);
35
36
        $this->assertDependencyNotChanged($dependency);
37
38
        $dataObject->value = 13;
39
40
        $this->assertDependencyChanged($dependency);
41
    }
42
}
43