Passed
Branch master (dae886)
by Alice
02:15
created

MediatorTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 21
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 3 1
A test_listeners() 0 11 1
1
<?php
2
3
namespace Wonderland\Thread\Tests\Mediator;
4
5
use PHPUnit\Framework\TestCase;
6
use Wonderland\Thread\Event\Event;
7
use Wonderland\Thread\Mediator\Listener\Listener;
8
use Wonderland\Thread\Mediator\Mediator;
9
10
/**
11
 * Class MediatorTest
12
 * @package Wonderland\Thread\Tests\Mediator
13
 * @author Alice Praud <[email protected]>
14
 */
15
class MediatorTest extends TestCase
16
{
17
	/** @var Mediator */
18
	private $mediator;
19
20
	public function setUp()
21
	{
22
		$this->mediator = new Mediator();
23
	}
24
25
	public function test_listeners()
26
	{
27
		$listener = new Listener(Event::POOL_NEW_THREAD, function() {
28
  });
29
		$this->assertSame([], $this->mediator->getListeners());
30
		$this->assertSame($this->mediator, $this->mediator->addListener($listener));
31
		$this->assertSame([Event::POOL_NEW_THREAD => [$listener]], $this->mediator->getListeners());
32
		$this->assertSame($this->mediator, $this->mediator->removeListener(new Listener('fake', function(){
33
  })));
34
		$this->mediator->notify(Event::POOL_NEW_THREAD, new Event('unit-event'));
35
		$this->assertSame($this->mediator, $this->mediator->removeListener($listener));
36
	}
37
38
}
39