Completed
Push — master ( e56856...67d12b )
by Antonio
04:26
created

EventTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3
Metric Value
wmc 2
lcom 0
cbo 3
dl 0
loc 37
rs 10
1
<?php
2
namespace Da\Mailer\Test\Event;
3
4
use Da\Mailer\Event\Event;
5
use Da\Mailer\Event\EventHandlerTrait;
6
use PHPUnit_Framework_TestCase;
7
8
class EventTest extends PHPUnit_Framework_TestCase
9
{
10
    /**
11
     * @expectedException \Da\Mailer\Exception\InvalidCallbackArgumentException
12
     */
13
    public function testInvalidCallbackArgumentException()
14
    {
15
        $event = new Event('not a callback');
16
    }
17
18
    public function testEventHandlerTraitMethods()
19
    {
20
        $triggered = null;
21
        $data = null;
22
        $handler = function (Event $event) use (&$triggered, &$data) {
23
            $triggered = $event;
24
            $data = $event->getData();
25
        };
26
        $event = new Event($handler);
27
        $eventsTester = new EventsTester();
28
29
        $eventsTester->attach('eventName', $event);
30
31
        $eventsTester->trigger('eventName', ['x-wings']);
32
33
        $this->assertEquals($triggered, $event);
34
        $this->assertEquals($data, ['x-wings']);
35
36
        $triggered = null;
37
        $data = null;
38
        $eventsTester->detach('eventName');
39
        $eventsTester->trigger('eventName');
40
41
        $this->assertNull($triggered);
42
        $this->assertNull($data);
43
    }
44
}
45
46
class EventsTester
47
{
48
    use EventHandlerTrait;
49
}
50