]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / monolog / monolog / tests / Monolog / Handler / DynamoDbHandlerTest.php
1 <?php
2
3 /*
4  * This file is part of the Monolog package.
5  *
6  * (c) Jordi Boggiano <j.boggiano@seld.be>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Monolog\Handler;
13
14 use Monolog\TestCase;
15
16 class DynamoDbHandlerTest extends TestCase
17 {
18     private $client;
19
20     public function setUp()
21     {
22         if (!class_exists('Aws\DynamoDb\DynamoDbClient')) {
23             $this->markTestSkipped('aws/aws-sdk-php not installed');
24         }
25
26         $this->client = $this->getMockBuilder('Aws\DynamoDb\DynamoDbClient')
27             ->setMethods(array('formatAttributes', '__call'))
28             ->disableOriginalConstructor()->getMock();
29     }
30
31     public function testConstruct()
32     {
33         $this->assertInstanceOf('Monolog\Handler\DynamoDbHandler', new DynamoDbHandler($this->client, 'foo'));
34     }
35
36     public function testInterface()
37     {
38         $this->assertInstanceOf('Monolog\Handler\HandlerInterface', new DynamoDbHandler($this->client, 'foo'));
39     }
40
41     public function testGetFormatter()
42     {
43         $handler = new DynamoDbHandler($this->client, 'foo');
44         $this->assertInstanceOf('Monolog\Formatter\ScalarFormatter', $handler->getFormatter());
45     }
46
47     public function testHandle()
48     {
49         $record = $this->getRecord();
50         $formatter = $this->getMock('Monolog\Formatter\FormatterInterface');
51         $formatted = array('foo' => 1, 'bar' => 2);
52         $handler = new DynamoDbHandler($this->client, 'foo');
53         $handler->setFormatter($formatter);
54
55         $formatter
56              ->expects($this->once())
57              ->method('format')
58              ->with($record)
59              ->will($this->returnValue($formatted));
60         $this->client
61              ->expects($this->once())
62              ->method('formatAttributes')
63              ->with($this->isType('array'))
64              ->will($this->returnValue($formatted));
65         $this->client
66              ->expects($this->once())
67              ->method('__call')
68              ->with('putItem', array(array(
69                  'TableName' => 'foo',
70                  'Item' => $formatted,
71              )));
72
73         $handler->handle($record);
74     }
75 }