summaryrefslogtreecommitdiff
path: root/tests/Unit/Controllers/AuthControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/Controllers/AuthControllerTest.php')
-rw-r--r--tests/Unit/Controllers/AuthControllerTest.php42
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();
+ }
+}