ZendTest\Stratigility\NextTest::testSlashAndPathGetResetByProcessBeforeExecutingNextMiddleware PHP Method

testSlashAndPathGetResetByProcessBeforeExecutingNextMiddleware() public method

    public function testSlashAndPathGetResetByProcessBeforeExecutingNextMiddleware()
    {
        $done = function ($req, $res, $err = null) {
            Assert::fail('Should not have hit the done handler, but did');
        };
        $request = $this->request->withUri(new Uri('http://example.com/foo/baz/bat'));
        $response = $this->prophesize(ResponseInterface::class)->reveal();
        $route1 = $this->prophesize(ServerMiddlewareInterface::class);
        $route1->process(Argument::type(RequestInterface::class), Argument::type(Next::class))->will(function ($args) {
            $request = $args[0];
            $next = $args[1];
            return $next->process($request);
        });
        $this->queue->enqueue(new Route('/foo', $route1->reveal()));
        $route2 = $this->prophesize(ServerMiddlewareInterface::class);
        $route2->process(Argument::type(RequestInterface::class), Argument::type(Next::class))->shouldNotBeCalled();
        $this->queue->enqueue(new Route('/foo/bar', $route2->reveal()));
        $route3 = $this->prophesize(ServerMiddlewareInterface::class);
        $route3->process(Argument::that(function ($arg) {
            Assert::assertEquals('/bat', $arg->getUri()->getPath());
            return true;
        }), Argument::type(Next::class))->willReturn($response);
        $this->queue->enqueue(new Route('/foo/baz', $route3->reveal()));
        $next = new Next($this->queue, $done);
        $next->setResponsePrototype($response);
        $this->assertSame($response, $next->process($request));
    }
NextTest