Пример #1
0
 /**
  * @param \Psr\Http\Message\ServerRequestInterface $request  The server request
  * @param \Psr\Http\Message\ResponseInterface $response The response object
  * @return \Psr\Http\Message\ResponseInterface An updated response
  */
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response)
 {
     $next = $this->middleware->get($this->index);
     if ($next) {
         $this->index++;
         return $next($request, $response, $this);
     }
     // End of the stack
     return $response;
 }
 public function testInsertAt()
 {
     $one = function () {
     };
     $two = function () {
     };
     $three = function () {
     };
     $stack = new MiddlewareStack();
     $stack->push($one)->push($two)->insertAt(0, $three);
     $this->assertSame($three, $stack->get(0));
     $this->assertSame($one, $stack->get(1));
     $this->assertSame($two, $stack->get(2));
     $stack = new MiddlewareStack();
     $stack->push($one)->push($two)->insertAt(1, $three);
     $this->assertSame($one, $stack->get(0));
     $this->assertSame($three, $stack->get(1));
     $this->assertSame($two, $stack->get(2));
 }