xref: /plugin/davcal/vendor/sabre/event/tests/ContinueCallbackTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\Event;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehlerclass ContinueCallbackTest extends \PHPUnit_Framework_TestCase {
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehler    function testContinueCallBack() {
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehler        $ee = new EventEmitter();
10*a1a3b679SAndreas Boehler
11*a1a3b679SAndreas Boehler        $handlerCounter = 0;
12*a1a3b679SAndreas Boehler        $bla = function() use (&$handlerCounter) {
13*a1a3b679SAndreas Boehler            $handlerCounter++;
14*a1a3b679SAndreas Boehler        };
15*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
16*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
17*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
18*a1a3b679SAndreas Boehler
19*a1a3b679SAndreas Boehler        $continueCounter = 0;
20*a1a3b679SAndreas Boehler        $r = $ee->emit('foo', [], function() use (&$continueCounter) {
21*a1a3b679SAndreas Boehler            $continueCounter++;
22*a1a3b679SAndreas Boehler            return true;
23*a1a3b679SAndreas Boehler        });
24*a1a3b679SAndreas Boehler        $this->assertTrue($r);
25*a1a3b679SAndreas Boehler        $this->assertEquals(3, $handlerCounter);
26*a1a3b679SAndreas Boehler        $this->assertEquals(2, $continueCounter);
27*a1a3b679SAndreas Boehler
28*a1a3b679SAndreas Boehler    }
29*a1a3b679SAndreas Boehler
30*a1a3b679SAndreas Boehler    function testContinueCallBackBreak() {
31*a1a3b679SAndreas Boehler
32*a1a3b679SAndreas Boehler        $ee = new EventEmitter();
33*a1a3b679SAndreas Boehler
34*a1a3b679SAndreas Boehler        $handlerCounter = 0;
35*a1a3b679SAndreas Boehler        $bla = function() use (&$handlerCounter) {
36*a1a3b679SAndreas Boehler            $handlerCounter++;
37*a1a3b679SAndreas Boehler        };
38*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
39*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
40*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
41*a1a3b679SAndreas Boehler
42*a1a3b679SAndreas Boehler        $continueCounter = 0;
43*a1a3b679SAndreas Boehler        $r = $ee->emit('foo', [], function() use (&$continueCounter) {
44*a1a3b679SAndreas Boehler            $continueCounter++;
45*a1a3b679SAndreas Boehler            return false;
46*a1a3b679SAndreas Boehler        });
47*a1a3b679SAndreas Boehler        $this->assertTrue($r);
48*a1a3b679SAndreas Boehler        $this->assertEquals(1, $handlerCounter);
49*a1a3b679SAndreas Boehler        $this->assertEquals(1, $continueCounter);
50*a1a3b679SAndreas Boehler
51*a1a3b679SAndreas Boehler    }
52*a1a3b679SAndreas Boehler
53*a1a3b679SAndreas Boehler    function testContinueCallBackBreakByHandler() {
54*a1a3b679SAndreas Boehler
55*a1a3b679SAndreas Boehler        $ee = new EventEmitter();
56*a1a3b679SAndreas Boehler
57*a1a3b679SAndreas Boehler        $handlerCounter = 0;
58*a1a3b679SAndreas Boehler        $bla = function() use (&$handlerCounter) {
59*a1a3b679SAndreas Boehler            $handlerCounter++;
60*a1a3b679SAndreas Boehler            return false;
61*a1a3b679SAndreas Boehler        };
62*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
63*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
64*a1a3b679SAndreas Boehler        $ee->on('foo', $bla);
65*a1a3b679SAndreas Boehler
66*a1a3b679SAndreas Boehler        $continueCounter = 0;
67*a1a3b679SAndreas Boehler        $r = $ee->emit('foo', [], function() use (&$continueCounter) {
68*a1a3b679SAndreas Boehler            $continueCounter++;
69*a1a3b679SAndreas Boehler            return false;
70*a1a3b679SAndreas Boehler        });
71*a1a3b679SAndreas Boehler        $this->assertFalse($r);
72*a1a3b679SAndreas Boehler        $this->assertEquals(1, $handlerCounter);
73*a1a3b679SAndreas Boehler        $this->assertEquals(0, $continueCounter);
74*a1a3b679SAndreas Boehler
75*a1a3b679SAndreas Boehler    }
76*a1a3b679SAndreas Boehler}
77