Skip to content

Commit 4e77b14

Browse files
committed
Use normalizer as @internal
1 parent 908f761 commit 4e77b14

File tree

4 files changed

+44
-26
lines changed

4 files changed

+44
-26
lines changed

spec/LoggerPluginSpec.php

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515

1616
class LoggerPluginSpec extends ObjectBehavior
1717
{
18-
function let(LoggerInterface $logger, Normalizer $normalizer)
18+
function let(LoggerInterface $logger)
1919
{
20-
$this->beConstructedWith($logger, $normalizer);
20+
$this->beConstructedWith($logger);
2121
}
2222

2323
function it_is_initializable()
@@ -30,13 +30,18 @@ function it_is_a_plugin()
3030
$this->shouldImplement('Http\Client\Plugin\Plugin');
3131
}
3232

33-
function it_logs(LoggerInterface $logger, Normalizer $normalizer, RequestInterface $request, ResponseInterface $response)
33+
function it_logs_request_and_response(LoggerInterface $logger, RequestInterface $request, ResponseInterface $response)
3434
{
3535
$logger->info('Emit request: "GET / 1.1"', ['request' => $request])->shouldBeCalled();
3636
$logger->info('Receive response: "200 Ok 1.1" for request: "GET / 1.1"', ['request' => $request, 'response' => $response])->shouldBeCalled();
3737

38-
$normalizer->normalizeRequestToString($request)->willReturn('GET / 1.1');
39-
$normalizer->normalizeResponseToString($response)->willReturn('200 Ok 1.1');
38+
$request->getMethod()->willReturn('GET');
39+
$request->getRequestTarget()->willReturn('/');
40+
$request->getProtocolVersion()->willReturn('1.1');
41+
42+
$response->getReasonPhrase()->willReturn('Ok');
43+
$response->getProtocolVersion()->willReturn('1.1');
44+
$response->getStatusCode()->willReturn('200');
4045

4146
$next = function () use ($response) {
4247
return new FulfilledPromise($response->getWrappedObject());
@@ -45,14 +50,16 @@ function it_logs(LoggerInterface $logger, Normalizer $normalizer, RequestInterfa
4550
$this->handleRequest($request, $next, function () {});
4651
}
4752

48-
function it_logs_exception(LoggerInterface $logger, Normalizer $normalizer, RequestInterface $request)
53+
function it_logs_exception(LoggerInterface $logger, RequestInterface $request)
4954
{
5055
$exception = new NetworkException('Cannot connect', $request->getWrappedObject());
5156

5257
$logger->info('Emit request: "GET / 1.1"', ['request' => $request])->shouldBeCalled();
5358
$logger->error('Error: "Cannot connect" when emitting request: "GET / 1.1"', ['request' => $request, 'exception' => $exception])->shouldBeCalled();
5459

55-
$normalizer->normalizeRequestToString($request)->willReturn('GET / 1.1');
60+
$request->getMethod()->willReturn('GET');
61+
$request->getRequestTarget()->willReturn('/');
62+
$request->getProtocolVersion()->willReturn('1.1');
5663

5764
$next = function () use ($exception) {
5865
return new RejectedPromise($exception);
@@ -61,7 +68,7 @@ function it_logs_exception(LoggerInterface $logger, Normalizer $normalizer, Requ
6168
$this->handleRequest($request, $next, function () {});
6269
}
6370

64-
function it_logs_response_within_exception(LoggerInterface $logger, Normalizer $normalizer, RequestInterface $request, ResponseInterface $response)
71+
function it_logs_response_within_exception(LoggerInterface $logger, RequestInterface $request, ResponseInterface $response)
6572
{
6673
$exception = new HttpException('Forbidden', $request->getWrappedObject(), $response->getWrappedObject());
6774

@@ -72,8 +79,13 @@ function it_logs_response_within_exception(LoggerInterface $logger, Normalizer $
7279
'exception' => $exception
7380
])->shouldBeCalled();
7481

75-
$normalizer->normalizeRequestToString($request)->willReturn('GET / 1.1');
76-
$normalizer->normalizeResponseToString($response)->willReturn('403 Forbidden 1.1');
82+
$request->getMethod()->willReturn('GET');
83+
$request->getRequestTarget()->willReturn('/');
84+
$request->getProtocolVersion()->willReturn('1.1');
85+
86+
$response->getReasonPhrase()->willReturn('Forbidden');
87+
$response->getProtocolVersion()->willReturn('1.1');
88+
$response->getStatusCode()->willReturn('403');
7789

7890
$next = function () use ($exception) {
7991
return new RejectedPromise($exception);

spec/Normalizer/NormalizerSpec.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,23 @@ class NormalizerSpec extends ObjectBehavior
1313
{
1414
function it_is_initializable(LoggerInterface $logger)
1515
{
16-
$this->beAnInstanceOf('Http\Client\Plugin\Normalizer\Normalizer');
16+
$this->shouldHaveType('Http\Client\Plugin\Normalizer\Normalizer');
1717
}
1818

1919
function it_normalize_request_to_string(RequestInterface $request)
2020
{
21-
$request->getMethod()->shouldBeCalled()->willReturn('GET');
22-
$request->getRequestTarget()->shouldBeCalled()->willReturn('/');
23-
$request->getProtocolVersion()->shouldBeCalled()->willReturn('1.1');
21+
$request->getMethod()->willReturn('GET');
22+
$request->getRequestTarget()->willReturn('/');
23+
$request->getProtocolVersion()->willReturn('1.1');
2424

2525
$this->normalizeRequestToString($request)->shouldReturn('GET / 1.1');
2626
}
2727

2828
function it_normalize_response_to_string(ResponseInterface $response)
2929
{
30-
$response->getReasonPhrase()->shouldBeCalled()->willReturn('Ok');
31-
$response->getProtocolVersion()->shouldBeCalled()->willReturn('1.1');
32-
$response->getStatusCode()->shouldBeCalled()->willReturn('200');
30+
$response->getReasonPhrase()->willReturn('Ok');
31+
$response->getProtocolVersion()->willReturn('1.1');
32+
$response->getStatusCode()->willReturn('200');
3333

3434
$this->normalizeResponseToString($response)->shouldReturn('200 Ok 1.1');
3535
}

src/LoggerPlugin.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,26 @@
1616
class LoggerPlugin implements Plugin
1717
{
1818
/**
19-
* @var LoggerInterface Logger to log request / response / exception for a http call
19+
* Logger to log request / response / exception for a http call
20+
*
21+
* @var LoggerInterface
2022
*/
2123
private $logger;
2224

2325
/**
24-
* @var Normalizer Normalize request and response to string or array
26+
* Normalize request and response to string or array
27+
*
28+
* @var Normalizer
2529
*/
2630
private $normalizer;
2731

28-
public function __construct(LoggerInterface $logger, Normalizer $normalizer)
32+
/**
33+
* @param LoggerInterface $logger
34+
*/
35+
public function __construct(LoggerInterface $logger)
2936
{
3037
$this->logger = $logger;
31-
$this->normalizer = $normalizer;
38+
$this->normalizer = new Normalizer();
3239
}
3340

3441
/**

src/Normalizer/Normalizer.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77

88
/**
99
* Normalize a request or a response into a string or an array
10+
*
11+
* @author Joel Wurtz <[email protected]>
12+
*
13+
* @internal Should not be used outside of the logger plugin
1014
*/
1115
class Normalizer
1216
{
@@ -16,8 +20,6 @@ class Normalizer
1620
* @param RequestInterface $request
1721
*
1822
* @return string
19-
*
20-
* @internal
2123
*/
2224
public function normalizeRequestToString(RequestInterface $request)
2325
{
@@ -30,12 +32,9 @@ public function normalizeRequestToString(RequestInterface $request)
3032
* @param ResponseInterface $response
3133
*
3234
* @return string
33-
*
34-
* @internal
3535
*/
3636
public function normalizeResponseToString(ResponseInterface $response)
3737
{
3838
return sprintf("%s %s %s", $response->getStatusCode(), $response->getReasonPhrase(), $response->getProtocolVersion());
3939
}
4040
}
41-

0 commit comments

Comments
 (0)