authManager = m::mock(AuthManager::class); } /** * Test that an authenticated user is redirected. */ public function testAuthenticatedUserIsRedirected() { $this->authManager->shouldReceive('guard')->with(null)->once()->andReturnSelf(); $this->authManager->shouldReceive('check')->withNoArgs()->once()->andReturn(true); $response = $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); $this->assertInstanceOf(RedirectResponse::class, $response); $this->assertEquals(route('index'), $response->getTargetUrl()); } /** * Test that a non-authenticated user continues through the middleware. */ public function testNonAuthenticatedUserIsNotRedirected() { $this->authManager->shouldReceive('guard')->with(null)->once()->andReturnSelf(); $this->authManager->shouldReceive('check')->withNoArgs()->once()->andReturn(false); $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); } /** * Return an instance of the middleware using mocked dependencies. * * @return \Pterodactyl\Http\Middleware\RedirectIfAuthenticated */ private function getMiddleware(): RedirectIfAuthenticated { return new RedirectIfAuthenticated($this->authManager); } }