ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
DynamoDbHandlerTest.php
Go to the documentation of this file.
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
12namespace Monolog\Handler;
13
15
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}
An exception for terminatinating execution or to throw for unit testing.
Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/)
getRecord($level=Logger::WARNING, $message='test', $context=array())
Definition: TestCase.php:19