Exemple #1
0
 public function test()
 {
     $middleware = new \Owl\Middleware();
     $data = [];
     $middleware->insert(function () use(&$data) {
         $data[] = 1;
         (yield true);
         $data[] = 2;
     });
     $middleware->insert(function () use(&$data) {
         $data[] = 3;
         (yield false);
         $data[] = 4;
     });
     $middleware->insert(function () use(&$data) {
         $data[] = 5;
         (yield true);
         $data[] = 6;
     });
     $middleware->execute();
     $this->assertSame([1, 3, 4, 2], $data);
     // test execute empty queue
     $middleware->reset();
     $middleware->execute();
 }
Exemple #2
0
 public function testHandleGenerator()
 {
     $middleware = new \Owl\Middleware();
     $middleware->insert(function () {
     });
     $this->setExpectedExceptionRegExp('\\Exception', '/yield/');
     $middleware->execute();
 }
Exemple #3
0
 public function testArguments()
 {
     $middleware = new \Owl\Middleware();
     $middleware->insert((function ($a) {
         $this->assertEquals('a', $a);
         (yield new \Owl\Middleware\Arguments('b', 'c'));
     })->bindTo($this));
     $middleware->insert(function () {
     });
     $middleware->insert((function ($b, $c) {
         $this->assertEquals('b', $b);
         $this->assertEquals('c', $c);
     })->bindTo($this));
     $middleware->execute(['a']);
 }