-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathEventLoopTest.php
More file actions
57 lines (42 loc) · 1.29 KB
/
EventLoopTest.php
File metadata and controls
57 lines (42 loc) · 1.29 KB
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
48
49
50
51
52
53
54
55
56
57
<?php
namespace EventLoop\Tests\Unit;
use EventLoop\EventLoop;
use PHPUnit\Framework\TestCase;
use React\EventLoop\Factory;
class EventLoopTest extends TestCase
{
private function resetStaticLoop() {
$ref = new \ReflectionClass(EventLoop::class);
$prop = $ref->getProperty('loop');
$prop->setAccessible(true);
$prop->setValue(null);
$prop->setAccessible(false);
}
public function setup() : void {
$this->resetStaticLoop();
}
public function testSetLoop()
{
$loop = Factory::create();
\EventLoop\setLoop($loop);
$this->assertSame($loop, \EventLoop\getLoop());
}
public function testSetLoopSameInstance()
{
$loop = \EventLoop\getLoop();
\EventLoop\setLoop($loop);
$this->assertSame($loop, \EventLoop\getLoop());
}
public function testGetLoopWithoutSet() {
$loop = \EventLoop\getLoop();
$this->assertSame($loop, \EventLoop\getLoop());
}
public function testSettingDifferentInstance() {
$this->expectException(\Exception::class);
\EventLoop\getLoop();
\EventLoop\setLoop(Factory::create());
}
public function testGetLoopTwice() {
$this->assertSame(\EventLoop\getLoop(), \EventLoop\getLoop());
}
}