From d15946df2dfb0ae2f0ca9371e5c8071df91ab45a Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Mon, 8 Oct 2018 19:30:37 +0200 Subject: Changed `src/` code and templates to use the new user model --- .../Helpers/AuthenticatorServiceProviderTest.php | 25 ++++++++++ tests/Unit/Helpers/AuthenticatorTest.php | 55 ++++++++++++++++++++++ .../Unit/Helpers/Stub/UserModelImplementation.php | 29 ++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 tests/Unit/Helpers/AuthenticatorServiceProviderTest.php create mode 100644 tests/Unit/Helpers/AuthenticatorTest.php create mode 100644 tests/Unit/Helpers/Stub/UserModelImplementation.php (limited to 'tests/Unit/Helpers') diff --git a/tests/Unit/Helpers/AuthenticatorServiceProviderTest.php b/tests/Unit/Helpers/AuthenticatorServiceProviderTest.php new file mode 100644 index 00000000..f7819da2 --- /dev/null +++ b/tests/Unit/Helpers/AuthenticatorServiceProviderTest.php @@ -0,0 +1,25 @@ +register(); + + $this->assertInstanceOf(Authenticator::class, $app->get(Authenticator::class)); + $this->assertInstanceOf(Authenticator::class, $app->get('authenticator')); + } +} diff --git a/tests/Unit/Helpers/AuthenticatorTest.php b/tests/Unit/Helpers/AuthenticatorTest.php new file mode 100644 index 00000000..085887c4 --- /dev/null +++ b/tests/Unit/Helpers/AuthenticatorTest.php @@ -0,0 +1,55 @@ +createMock(Session::class); + /** @var UserModelImplementation|MockObject $userRepository */ + $userRepository = new UserModelImplementation(); + /** @var User|MockObject $user */ + $user = $this->createMock(User::class); + + $session->expects($this->exactly(3)) + ->method('get') + ->with('uid') + ->willReturnOnConsecutiveCalls( + null, + 42, + 1337 + ); + + $auth = new Authenticator($session, $userRepository); + + // Not in session + $this->assertEquals(null, $auth->user()); + + // Unknown user + UserModelImplementation::$id = 42; + $this->assertEquals(null, $auth->user()); + + // User found + UserModelImplementation::$id = 1337; + UserModelImplementation::$user = $user; + $this->assertEquals($user, $auth->user()); + + // User cached + UserModelImplementation::$id = null; + UserModelImplementation::$user = null; + $this->assertEquals($user, $auth->user()); + } +} diff --git a/tests/Unit/Helpers/Stub/UserModelImplementation.php b/tests/Unit/Helpers/Stub/UserModelImplementation.php new file mode 100644 index 00000000..934aaeb2 --- /dev/null +++ b/tests/Unit/Helpers/Stub/UserModelImplementation.php @@ -0,0 +1,29 @@ +