1 | <?php |
||
12 | abstract class Test extends TestCase |
||
13 | { |
||
14 | use Toolkit; |
||
15 | |||
16 | public $params = []; |
||
17 | public $disableRemote = true; |
||
18 | |||
19 | public $mocks = []; |
||
20 | public $data = []; |
||
21 | |||
22 | 3 | public function actAs($context) |
|
31 | |||
32 | 3 | public function __construct() |
|
33 | { |
||
34 | parent::__construct(); |
||
35 | |||
36 | $this->app = new Test\Application($this); |
||
37 | |||
38 | foreach ($this->mocks as [$method, $params, $result]) { |
||
39 | $this->mock($method, $params)->willReturn($result); |
||
40 | } |
||
41 | |||
42 | $serviceData = []; |
||
43 | foreach ($this->data as $space => $data) { |
||
44 | [$service, $space] = explode('.', $space); |
||
45 | if (!array_key_exists($service, $serviceData)) { |
||
46 | $serviceData[$service] = []; |
||
47 | } |
||
48 | $serviceData[$service][$space] = $data; |
||
49 | } |
||
50 | |||
51 | $pool = $this->app->get(Pool::class); |
||
52 | $property = new ReflectionProperty(Pool::class, 'resolvers'); |
||
53 | $property->setAccessible(true); |
||
54 | $property->setValue($pool, []); |
||
55 | |||
56 | $service = $this->app->get(Service::class)->getName(); |
||
57 | $pool->register($service, function() { |
||
58 | 1 | return $this->app->get(Mapper::class); |
|
59 | }); |
||
60 | |||
61 | $pool->registerResolver(function($service) use ($serviceData) { |
||
62 | 3 | if (array_key_exists($service, $serviceData)) { |
|
63 | 1 | return new Test\Mapper($this, $service); |
|
64 | } |
||
65 | 3 | }); |
|
66 | |||
67 | foreach ($this->data ?: [] as $space => $rows) { |
||
68 | $this->data[$space] = []; |
||
69 | foreach ($rows as $row) { |
||
70 | $pool->getRepository($space)->create($row)->save(); |
||
71 | } |
||
72 | } |
||
73 | } |
||
74 | |||
75 | 56 | public function setUp(): void |
|
76 | { |
||
77 | 56 | $this->dispatch('tarantool.migrate'); |
|
78 | 56 | } |
|
79 | |||
80 | 56 | public function tearDown(): void |
|
84 | |||
85 | public $mockInstances = []; |
||
86 | |||
87 | 5 | public function mock(string $job, array $params = []) |
|
99 | } |
||
100 |
This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.