-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
LoggingPostRequestSenderTest.php
64 lines (49 loc) · 1.6 KB
/
LoggingPostRequestSenderTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
declare( strict_types = 1 );
namespace Jeroen\PostRequestSender\Tests;
use Jeroen\PostRequestSender\LoggingPostRequestSender;
use Jeroen\PostRequestSender\StubPostRequestSender;
use PHPUnit\Framework\TestCase;
use Psr\Log\LogLevel;
use WMDE\PsrLogTestDoubles\LoggerSpy;
/**
* @covers \Jeroen\PostRequestSender\LoggingPostRequestSender
* @covers \Jeroen\PostRequestSender\StubPostRequestSender
* @covers \Jeroen\PostRequestSender\PostRequest
*/
class LoggingPostRequestSenderTest extends TestCase {
public function testLogsRequests(): void {
$loggerSpy = new LoggerSpy();
$sender = new LoggingPostRequestSender(
new StubPostRequestSender(),
$loggerSpy
);
$sender->post( 'https://first.url', [ 'foo' => 'bar' ] );
$sender->post( 'https://second.url', [ 'baz' => 'bah', 'pew' => 1337 ] );
$this->assertSame(
[ 'Post request to https://first.url', 'Post request to https://second.url' ],
$loggerSpy->getLogCalls()->getMessages()
);
$this->assertSame(
[ 'baz' => 'bah', 'pew' => 1337 ],
$loggerSpy->getLogCalls()->getLastCall()?->getContext()
);
$this->assertSame(
LogLevel::INFO,
$loggerSpy->getLogCalls()->getLastCall()?->getLevel()
);
}
public function testOmitsExcludedFields(): void {
$loggerSpy = new LoggerSpy();
$sender = new LoggingPostRequestSender(
new StubPostRequestSender(),
$loggerSpy,
fieldsToOmit: [ 'secret' ]
);
$sender->post( 'https://example.url', [ 'foo' => 'bar', 'secret' => 1337, 'baz' => 'bah' ] );
$this->assertSame(
[ 'foo' => 'bar', 'baz' => 'bah' ],
$loggerSpy->getLogCalls()->getLastCall()?->getContext()
);
}
}