diff options
Diffstat (limited to 'tests/Unit/Controllers/AuthControllerTest.php')
-rw-r--r-- | tests/Unit/Controllers/AuthControllerTest.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/Unit/Controllers/AuthControllerTest.php b/tests/Unit/Controllers/AuthControllerTest.php new file mode 100644 index 00000000..c5349cda --- /dev/null +++ b/tests/Unit/Controllers/AuthControllerTest.php @@ -0,0 +1,42 @@ +<?php + +namespace Engelsystem\Test\Unit\Controllers; + +use Engelsystem\Controllers\AuthController; +use Engelsystem\Http\Response; +use Engelsystem\Http\UrlGeneratorInterface; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; +use Symfony\Component\HttpFoundation\Session\SessionInterface; + +class AuthControllerTest extends TestCase +{ + /** + * @covers \Engelsystem\Controllers\AuthController::__construct + * @covers \Engelsystem\Controllers\AuthController::logout + */ + public function testLogout() + { + /** @var Response|MockObject $response */ + $response = $this->createMock(Response::class); + /** @var SessionInterface|MockObject $session */ + $session = $this->getMockForAbstractClass(SessionInterface::class); + /** @var UrlGeneratorInterface|MockObject $url */ + $url = $this->getMockForAbstractClass(UrlGeneratorInterface::class); + + $session->expects($this->once()) + ->method('invalidate'); + + $response->expects($this->once()) + ->method('redirectTo') + ->with('https://foo.bar/'); + + $url->expects($this->once()) + ->method('to') + ->with('/') + ->willReturn('https://foo.bar/'); + + $controller = new AuthController($response, $session, $url); + $controller->logout(); + } +} |