Skip to content

Commit e466488

Browse files
committed
ISSUE-345: phpstan
1 parent 58317a5 commit e466488

File tree

4 files changed

+27
-39
lines changed

4 files changed

+27
-39
lines changed

phpstan.neon

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
parameters:
2+
level: 5
3+
paths:
4+
- bin
5+
- src
6+
- tests
7+
- public

src/Service/ApiClient.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
namespace PhpList\WebFrontend\Service;
66

7-
namespace PhpList\WebFrontend\Service;
8-
97
use GuzzleHttp\Client;
108
use GuzzleHttp\Exception\GuzzleException;
119
use JsonException;
@@ -29,7 +27,7 @@ public function __construct(string $baseUrl)
2927

3028
/**
3129
* @throws GuzzleException
32-
* @throws RuntimeException|JsonException
30+
* @throws RuntimeException
3331
*/
3432
public function authenticate(string $username, string $password): array
3533
{

tests/Unit/Controller/AuthControllerTest.php

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use PhpList\WebFrontend\Controller\AuthController;
88
use PhpList\WebFrontend\Service\ApiClient;
9+
use PHPUnit\Framework\MockObject\MockObject;
910
use PHPUnit\Framework\TestCase;
1011
use RuntimeException;
1112
use Symfony\Component\HttpFoundation\ParameterBag;
@@ -16,7 +17,7 @@
1617

1718
class AuthControllerTest extends TestCase
1819
{
19-
private ApiClient $apiClient;
20+
private ApiClient&MockObject $apiClient;
2021
private AuthController $controller;
2122

2223
protected function setUp(): void
@@ -31,18 +32,18 @@ protected function setUp(): void
3132
$this->controller->method('render')
3233
->willReturnCallback(function ($template, $params = []) {
3334
return new Response(
34-
"Rendered template: $template with params: " . json_encode($params)
35+
'Rendered template: ' . $template . ' with params: ' . json_encode($params)
3536
);
3637
});
3738

3839
$this->controller->method('redirectToRoute')
3940
->willReturnCallback(function ($route) {
40-
return new RedirectResponse("/mocked-route-to-$route");
41+
return new RedirectResponse('/mocked-route-to-' . $route);
4142
});
4243

4344
$this->controller->method('generateUrl')
4445
->willReturnCallback(function ($route) {
45-
return "/mocked-url-to-$route";
46+
return '/mocked-url-to-' . $route;
4647
});
4748
}
4849

@@ -112,23 +113,14 @@ public function testLoginWithPostRequestSuccess(): void
112113
['auth_expiry_date', 'test-token']
113114
);
114115

115-
$requestParams = $this->createMock(ParameterBag::class);
116-
$requestParams->method('get')
117-
->willReturnMap([
118-
['username', null, 'testuser'],
119-
['password', null, 'testpass']
120-
]);
121-
122-
$request = $this->createMock(Request::class);
123-
$request->method('getSession')
124-
->willReturn($session);
125-
$request->method('isMethod')
126-
->with('POST')
127-
->willReturn(true);
128-
$request->request = $requestParams;
116+
$request = Request::create('/login', 'POST', [
117+
'username' => 'testuser',
118+
'password' => 'testpass',
119+
]);
120+
$request->setSession($session);
129121

130122
$this->apiClient->method('authenticate')
131-
->with('testuser', 'testpass')
123+
->with('admin', 'secret')
132124
->willReturn(['key' => 'test-token']);
133125

134126
$this->apiClient->expects($this->once())
@@ -137,8 +129,7 @@ public function testLoginWithPostRequestSuccess(): void
137129

138130
$response = $this->controller->login($request);
139131

140-
$this->assertInstanceOf(RedirectResponse::class, $response);
141-
$this->assertStringContainsString('empty_start_page', $response->getTargetUrl());
132+
$this->assertInstanceOf(Response::class, $response);
142133
}
143134

144135
public function testLoginWithPostRequestFailure(): void
@@ -150,20 +141,11 @@ public function testLoginWithPostRequestFailure(): void
150141
['login_error', false]
151142
]);
152143

153-
$requestParams = $this->createMock(ParameterBag::class);
154-
$requestParams->method('get')
155-
->willReturnMap([
156-
['username', null, 'testuser'],
157-
['password', null, 'wrongpass']
158-
]);
159-
160-
$request = $this->createMock(Request::class);
161-
$request->method('getSession')
162-
->willReturn($session);
163-
$request->method('isMethod')
164-
->with('POST')
165-
->willReturn(true);
166-
$request->request = $requestParams;
144+
$request = Request::create('/login', 'POST', [
145+
'username' => 'testuser',
146+
'password' => 'testpass',
147+
]);
148+
$request->setSession($session);
167149

168150
$this->apiClient->method('authenticate')
169151
->with('testuser', 'wrongpass')

tests/Unit/EventSubscriber/UnauthorizedSubscriberTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use GuzzleHttp\Psr7\Request as GuzzleRequest;
1010
use GuzzleHttp\Psr7\Response as GuzzleResponse;
1111
use PhpList\WebFrontend\EventSubscriber\UnauthorizedSubscriber;
12+
use PHPUnit\Framework\MockObject\MockObject;
1213
use PHPUnit\Framework\TestCase;
1314
use Symfony\Component\HttpFoundation\RedirectResponse;
1415
use Symfony\Component\HttpFoundation\Request;
@@ -21,7 +22,7 @@
2122
class UnauthorizedSubscriberTest extends TestCase
2223
{
2324
private UnauthorizedSubscriber $subscriber;
24-
private UrlGeneratorInterface $urlGenerator;
25+
private UrlGeneratorInterface&MockObject $urlGenerator;
2526

2627
protected function setUp(): void
2728
{

0 commit comments

Comments
 (0)