Skip to content

Commit 6fce984

Browse files
committed
feat: add Symfony 6 compatibilit
1 parent 59b4bff commit 6fce984

4 files changed

Lines changed: 49 additions & 27 deletions

File tree

src/M6Web/Bundle/LogBridgeBundle/Formatter/DefaultFormatter.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,16 @@ public function getLogContext(Request $request, Response $response, array $optio
149149
*/
150150
protected function getUsername()
151151
{
152-
if ($this->tokenStorage && $this->tokenStorage->getToken()) {
153-
return $this->tokenStorage->getToken()->getUsername();
152+
if (!$this->tokenStorage || !$token = $this->tokenStorage->getToken()) {
153+
return '';
154154
}
155155

156-
return '';
156+
// compatibility Symfony < 6
157+
if (method_exists('Symfony\Component\Security\Core\Authentication\Token\TokenInterface', 'getUsername')) {
158+
return $token->getUsername();
159+
}
160+
161+
return $token->getUserIdentifier();
157162
}
158163

159164
/**

src/M6Web/Bundle/LogBridgeBundle/Tests/Units/BaseTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use atoum;
66
use Symfony\Component\Routing\RequestContext;
7+
use Symfony\Component\Routing\Route;
78

89
/**
910
* Base Class Unit test
@@ -14,7 +15,7 @@ protected function getMockedRouterCollection()
1415
{
1516
$collection = new \mock\Symfony\Component\Routing\RouteCollection();
1617
$collection->getMockController()->get = function($name) {
17-
return $name != 'invalid_route' ? true : false;
18+
return $name != 'invalid_route' ? new Route('/path') : null;
1819
};
1920

2021
return $collection;

src/M6Web/Bundle/LogBridgeBundle/Tests/Units/Formatter/DefaultFormatter.php

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace M6Web\Bundle\LogBridgeBundle\Tests\Units\Formatter;
44

55
use atoum;
6+
use Symfony\Component\Security\Core\User\InMemoryUser;
67
use Symfony\Component\Security\Core\User\User;
78
use M6Web\Bundle\LogBridgeBundle\Formatter;
89
use Symfony\Component\HttpFoundation\Request;
@@ -14,21 +15,30 @@
1415
class DefaultFormatter extends atoum
1516
{
1617
const ENVIRONMENT = 'test';
18+
const USERNAME = 'test-username';
19+
const PASSWORD = 'test-password';
1720

1821
private function getUser()
1922
{
20-
return new User('test', 'password');
23+
if (class_exists(User::class)) {
24+
return new User(self::USERNAME, self::PASSWORD);
25+
}
26+
27+
return new InMemoryUser(self::USERNAME, self::PASSWORD);
2128
}
2229

23-
private function getMockedToken(User $user = null)
30+
private function getMockedToken()
2431
{
25-
$user = $user ?: $this->getUser();
26-
$token = new \mock\Symfony\Component\Security\Core\Authentication\TokenInterface();
32+
$usernameMethod = 'getUserIdentifier';
33+
if (method_exists('Symfony\Component\Security\Core\Authentication\Token\TokenInterface', 'getUsername')) {
34+
// compatibility Symfony < 6
35+
$usernameMethod = 'getUsername';
36+
}
2737

28-
$token->getMockController()->getUsername = $user->getUsername();
29-
$token->getMockController()->getUser = $user;
30-
$token->getMockController()->__toString = $user->getUsername();
31-
$token->getMockController()->getCredentials = 'test';
38+
$token = new \mock\Symfony\Component\Security\Core\Authentication\Token\TokenInterface();
39+
$token->getMockController()->$usernameMethod = self::USERNAME;
40+
$token->getMockController()->getUser = $this->getUser();
41+
$token->getMockController()->__toString = self::USERNAME;
3242

3343
return $token;
3444
}
@@ -85,7 +95,7 @@ public function testProvider()
8595
->integer($logContext['status'])
8696
->isEqualTo($status)
8797
->string($logContext['user'])
88-
->isEqualTo($tokenstorage->getToken()->getUsername())
98+
->isEqualTo(self::USERNAME)
8999
->string($logContext['key'])
90100
->isEqualTo(sprintf('%s.%s.%s.%s', self::ENVIRONMENT, $route, $method, $status))
91101
;
@@ -104,14 +114,10 @@ public function testPostProvider()
104114
];
105115

106116

107-
$request = new \mock\Symfony\Component\HttpFoundation\Request([], $post);
108-
$request->getMockController()->getMethod = 'POST';
117+
$request = new Request([], $post, [], [], [], ['REQUEST_METHOD' => 'POST']);
109118

110119
$response = new Response('Body content response');
111120
$tokenstorage = $this->getMockedTokenStorage();
112-
$route = $request->get('_route');
113-
$method = $request->getMethod();
114-
$status = $response->getStatusCode();
115121

116122
$this
117123
->if($provider = $this->createProvider())

src/M6Web/Bundle/LogBridgeBundle/Tests/Units/Formatter/ExceptionFormatter.php

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace M6Web\Bundle\LogBridgeBundle\Tests\Units\Formatter;
44

55
use atoum;
6+
use Symfony\Component\Security\Core\User\InMemoryUser;
67
use Symfony\Component\Security\Core\User\User;
78
use M6Web\Bundle\LogBridgeBundle\Formatter;
89
use Symfony\Component\HttpFoundation\Request;
@@ -14,6 +15,8 @@
1415
class ExceptionFormatter extends atoum
1516
{
1617
const ENVIRONMENT = 'test';
18+
const USERNAME = 'test-username';
19+
const PASSWORD = 'test-password';
1720

1821
/**
1922
* @var string
@@ -30,18 +33,25 @@ public function beforeTestMethod($method)
3033

3134
private function getUser()
3235
{
33-
return new User('test', 'password');
36+
if (class_exists(User::class)) {
37+
return new User(self::USERNAME, self::PASSWORD);
38+
}
39+
40+
return new InMemoryUser(self::USERNAME, self::PASSWORD);
3441
}
3542

36-
private function getMockedToken(User $user = null)
43+
private function getMockedToken()
3744
{
38-
$user = $user ?: $this->getUser();
39-
$token = new \mock\Symfony\Component\Security\Core\Authentication\TokenInterface();
45+
$usernameMethod = 'getUserIdentifier';
46+
if (method_exists('Symfony\Component\Security\Core\Authentication\Token\TokenInterface', 'getUsername')) {
47+
// compatibility Symfony < 6
48+
$usernameMethod = 'getUsername';
49+
}
4050

41-
$token->getMockController()->getUsername = $user->getUsername();
42-
$token->getMockController()->getUser = $user;
43-
$token->getMockController()->__toString = $user->getUsername();
44-
$token->getMockController()->getCredentials = 'test';
51+
$token = new \mock\Symfony\Component\Security\Core\Authentication\Token\TokenInterface();
52+
$token->getMockController()->$usernameMethod = self::USERNAME;
53+
$token->getMockController()->getUser = $this->getUser();
54+
$token->getMockController()->__toString = self::USERNAME;
4555

4656
return $token;
4757
}
@@ -111,7 +121,7 @@ public function testProvider()
111121
->integer($logContext['status'])
112122
->isEqualTo($status)
113123
->string($logContext['user'])
114-
->isEqualTo($tokenstorage->getToken()->getUsername())
124+
->isEqualTo(self::USERNAME)
115125
->string($logContext['key'])
116126
->isEqualTo(sprintf('%s.%s.%s.%s', self::ENVIRONMENT, $route, $method, $status))
117127
;

0 commit comments

Comments
 (0)