createMock(Authenticator::class); $extension = new Authentication($auth); $functions = $extension->getFunctions(); $this->assertExtensionExists('is_user', [$extension, 'isAuthenticated'], $functions); $this->assertExtensionExists('is_guest', [$extension, 'isGuest'], $functions); $this->assertExtensionExists('has_permission_to', [$auth, 'can'], $functions); } /** * @covers \Engelsystem\Renderer\Twig\Extensions\Authentication::isAuthenticated * @covers \Engelsystem\Renderer\Twig\Extensions\Authentication::isGuest */ public function testIsAuthenticated(): void { /** @var Authenticator|MockObject $auth */ $auth = $this->createMock(Authenticator::class); $user = User::factory()->make(); $auth->expects($this->exactly(4)) ->method('user') ->willReturnOnConsecutiveCalls( null, null, $user, $user ); $extension = new Authentication($auth); $this->assertFalse($extension->isAuthenticated()); $this->assertTrue($extension->isGuest()); $this->assertTrue($extension->isAuthenticated()); $this->assertFalse($extension->isGuest()); } }