5 require_once __DIR__
."/../../vendor/autoload.php";
6 require_once __DIR__
."/TestObserver.php";
8 class EventTest
extends \PHPUnit_Framework_TestCase
11 TestObserver
::reset();
14 function testBasic() {
15 $first = new Event("first", 1);
16 $second = new Event("second", 2);
18 $this->assertEquals(-1, $first->compareTo($second));
19 $this->assertEquals(1, $second->compareTo($first));
21 $this->assertEquals("first", $first->getName());
22 $this->assertEquals("second", $second->getName());
25 function testAttachDetach() {
26 $event = new Event("event");
27 $observer = new TestObserver("observer");
28 $this->assertEquals($event, $event->attach($observer));
29 $this->assertTrue($event->detach($observer));
30 $this->assertFalse($event->detach($observer));
33 function testNotify() {
34 $event = new Event("event");
35 $event->attach(new TestObserver("first"));
36 $event->attach(new TestObserver("second"));
37 $event->attach(new TestObserver("third"));
42 "third: event\n", TestObserver
::$logs);
45 function testPrioritizedNotify() {
46 $event = new Event("event");
47 $event->attach(new TestObserver("first"),3);
48 $event->attach(new TestObserver("second"),2);
49 $event->attach(new TestObserver("third"),1);
54 "first: event\n", TestObserver
::$logs);