summaryrefslogtreecommitdiff
path: root/tests/Unit/Helpers/AuthenticatorTest.php
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2018-10-11 01:26:34 +0200
committermsquare <msquare@notrademark.de>2018-10-31 13:43:23 +0100
commit4e09ee3eb255160c88a378375d69123a3e000497 (patch)
treee4a03ff40c939473cc1278f8286675cfa31e4556 /tests/Unit/Helpers/AuthenticatorTest.php
parent7c6afc2bfe3263b91ecabf5530da57fe1162ea0b (diff)
Replaced more user related stuff
(Contains some buggy stuff too...)
Diffstat (limited to 'tests/Unit/Helpers/AuthenticatorTest.php')
-rw-r--r--tests/Unit/Helpers/AuthenticatorTest.php49
1 files changed, 48 insertions, 1 deletions
diff --git a/tests/Unit/Helpers/AuthenticatorTest.php b/tests/Unit/Helpers/AuthenticatorTest.php
index 085887c4..2c03b968 100644
--- a/tests/Unit/Helpers/AuthenticatorTest.php
+++ b/tests/Unit/Helpers/AuthenticatorTest.php
@@ -7,6 +7,7 @@ use Engelsystem\Models\User\User;
use Engelsystem\Test\Unit\Helpers\Stub\UserModelImplementation;
use Engelsystem\Test\Unit\ServiceProviderTest;
use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Http\Message\ServerRequestInterface;
use Symfony\Component\HttpFoundation\Session\Session;
class AuthenticatorTest extends ServiceProviderTest
@@ -17,6 +18,8 @@ class AuthenticatorTest extends ServiceProviderTest
*/
public function testUser()
{
+ /** @var ServerRequestInterface|MockObject $request */
+ $request = $this->getMockForAbstractClass(ServerRequestInterface::class);
/** @var Session|MockObject $session */
$session = $this->createMock(Session::class);
/** @var UserModelImplementation|MockObject $userRepository */
@@ -33,7 +36,7 @@ class AuthenticatorTest extends ServiceProviderTest
1337
);
- $auth = new Authenticator($session, $userRepository);
+ $auth = new Authenticator($request, $session, $userRepository);
// Not in session
$this->assertEquals(null, $auth->user());
@@ -52,4 +55,48 @@ class AuthenticatorTest extends ServiceProviderTest
UserModelImplementation::$user = null;
$this->assertEquals($user, $auth->user());
}
+
+ /**
+ * @covers \Engelsystem\Helpers\Authenticator::apiUser
+ */
+ public function testApiUser()
+ {
+ /** @var ServerRequestInterface|MockObject $request */
+ $request = $this->getMockForAbstractClass(ServerRequestInterface::class);
+ /** @var Session|MockObject $session */
+ $session = $this->createMock(Session::class);
+ /** @var UserModelImplementation|MockObject $userRepository */
+ $userRepository = new UserModelImplementation();
+ /** @var User|MockObject $user */
+ $user = $this->createMock(User::class);
+
+ $request->expects($this->exactly(3))
+ ->method('getQueryParams')
+ ->with()
+ ->willReturnOnConsecutiveCalls(
+ [],
+ ['api_key' => 'iMaNot3xiSt1nGAp1Key!'],
+ ['foo_key' => 'SomeSecretApiKey']
+ );
+
+ /** @var Authenticator|MockObject $auth */
+ $auth = new Authenticator($request, $session, $userRepository);
+
+ // No key
+ $this->assertEquals(null, $auth->apiUser());
+
+ // Unknown user
+ UserModelImplementation::$apiKey = 'iMaNot3xiSt1nGAp1Key!';
+ $this->assertEquals(null, $auth->apiUser());
+
+ // User found
+ UserModelImplementation::$apiKey = 'SomeSecretApiKey';
+ UserModelImplementation::$user = $user;
+ $this->assertEquals($user, $auth->apiUser('foo_key'));
+
+ // User cached
+ UserModelImplementation::$apiKey = null;
+ UserModelImplementation::$user = null;
+ $this->assertEquals($user, $auth->apiUser());
+ }
}