Passed
Pull Request — master (#31)
by
unknown
13:33
created

DynamoDbSecondaryIndexProcessorTest::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
namespace Graze\Monolog\Processor;
3
4
use Mockery;
5
use Monolog\Test\TestCase;
6
7
class DynamoDbSecondaryIndexProcessorTest extends TestCase
8
{
9
    public function tearDown(): void
10
    {
11
        parent::tearDown();
12
        Mockery::close();
13
    }
14
15
    public function testConstruct()
16
    {
17
        $this->assertInstanceOf('Graze\Monolog\Processor\DynamoDbSecondaryIndexProcessor', new DynamoDbSecondaryIndexProcessor(["foo", "bar"]));
18
    }
19
20
    public function testProcessor()
21
    {
22
        $processor = new DynamoDbSecondaryIndexProcessor(["foo", "bar"]);
23
        $datetime = new \Datetime('@400');
24
        $record = [
25
            'eventIdentifier' => "foodle",
26
            'timestamp' => new \Datetime('@33'),
27
            'data' => [
28
                'shoe' => [],
29
                'schuh' => 'german',
30
                'bananas' => [
31
                    'Bar' => 'a town in Montenegro',
32
                    'bar' => 'sandy',
33
                ],
34
            ],
35
            'metadata' => [
36
                'foo' => $datetime,
37
            ],
38
        ];
39
        $record = $processor($record);
40
41
        $this->assertArrayHasKey('foo', $record);
42
        $this->assertEquals($datetime, $record['foo']);
43
        $this->assertArrayHasKey('bar', $record);
44
        $this->assertEquals('sandy', $record['bar']);
45
    }
46
47
    public function testProcessorNoOverwrite()
48
    {
49
        $processor = new DynamoDbSecondaryIndexProcessor(["timestamp", "eventIdentifier"]);
50
        $timestamp = new \Datetime('@33');
51
        $identifier = "This should appear";
52
        $record = [
53
            'eventIdentifier' => $identifier,
54
            'timestamp' => $timestamp,
55
            'data' => [
56
                'bananas' => [
57
                    'eventIdentifier' => 'This should not appear',
58
                ],
59
            ],
60
            'metadata' => [
61
                'timestamp' => 'Also should not appear',
62
            ],
63
        ];
64
        $record = $processor($record);
65
66
        $this->assertEquals($timestamp, $record['timestamp']);
67
        $this->assertEquals($identifier, $record['eventIdentifier']);
68
    }
69
}
70