tokenService = $this->prophesize(RestTokenService::class); $this->middleware = new CheckAuthenticationMiddleware($this->tokenService->reveal(), Translator::factory([])); } /** * @test */ public function someWhitelistedSituationsFallbackToNextMiddleware() { $request = ServerRequestFactory::fromGlobals(); $response = new Response(); $isCalled = false; $this->assertFalse($isCalled); $this->middleware->__invoke($request, $response, function ($req, $resp) use (&$isCalled) { $isCalled = true; }); $this->assertTrue($isCalled); $request = ServerRequestFactory::fromGlobals()->withAttribute( RouteResult::class, RouteResult::fromRouteFailure(['GET']) ); $response = new Response(); $isCalled = false; $this->assertFalse($isCalled); $this->middleware->__invoke($request, $response, function ($req, $resp) use (&$isCalled) { $isCalled = true; }); $this->assertTrue($isCalled); $request = ServerRequestFactory::fromGlobals()->withAttribute( RouteResult::class, RouteResult::fromRouteMatch('rest-authenticate', 'foo', []) ); $response = new Response(); $isCalled = false; $this->assertFalse($isCalled); $this->middleware->__invoke($request, $response, function ($req, $resp) use (&$isCalled) { $isCalled = true; }); $this->assertTrue($isCalled); $request = ServerRequestFactory::fromGlobals()->withAttribute( RouteResult::class, RouteResult::fromRouteMatch('bar', 'foo', []) )->withMethod('OPTIONS'); $response = new Response(); $isCalled = false; $this->assertFalse($isCalled); $this->middleware->__invoke($request, $response, function ($req, $resp) use (&$isCalled) { $isCalled = true; }); $this->assertTrue($isCalled); } }