Completed
Push — master ( 8a6725...9de629 )
by Michał
02:24
created

getSampleContentWithContext()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace SimpleLog\Test;
4
5
use PHPUnit\Framework\TestCase;
6
use SimpleLog\Message\DefaultInlineMessage;
7
8
class DefaultInlineMessageTest extends TestCase
9
{
10
    const DATE_FORMAT = '[\d]{4}-[\d]{2}-[\d]{2}';
11
    const TIME_FORMAT = '[\d]{2}:[\d]{2}:[\d]{2}';
12
    const DATE_TIME_FORMAT = self::DATE_FORMAT . ' - ' . self::TIME_FORMAT;
13
14
    public function testSimpleMessage()
15
    {
16
        $message = (new DefaultInlineMessage)->createMessage('Some log message', [])->getMessage();
17
18
        $this->assertRegExp($this->getSampleContent(), $message);
19
20
        $message = (new DefaultInlineMessage)->createMessage(new MessageObject('Some log message'), [])->getMessage();
21
22
        $this->assertRegExp($this->getSampleContent(), $message);
23
    }
24
25
    protected function getSampleContent()
26
    {
27
        return '#\[' . self::DATE_TIME_FORMAT . '] Some log message#';
28
    }
29
30
    public function testSimpleMessageWithArray()
31
    {
32
        $content = [
33
            'message key' => 'some message',
34
            'another key' => 'some another message',
35
            'no key message',
36
        ];
37
        $message = (new DefaultInlineMessage)->createMessage($content, [])->getMessage();
38
39
        $this->assertRegExp($this->getArrayMessageContent(), $message);
40
    }
41
42
    protected function getArrayMessageContent()
43
    {
44
        return '#\['
45
            . self::DATE_TIME_FORMAT
46
            . ']'
47
            . '  \| message key:some message \| another key:some another message \| no key message#';
48
    }
49
50
    /**
51
     * simple create log object and create log message from array with sub arrays data in given directory
52
     */
53
    public function testCreateLogWithSubArrayMessage()
54
    {
55
        $content = [
56
            'sub array' => [
57
                'key' => 'val',
58
                'key 2' => 'val 2',
59
            ],
60
        ];
61
        $message = (new DefaultInlineMessage)->createMessage($content, [])->getMessage();
62
63
        $this->assertRegExp($this->getSubArrayMessageContent(), $message);
64
    }
65
66
    protected function getSubArrayMessageContent()
67
    {
68
        return '#\[' . self::DATE_TIME_FORMAT . ']  \| sub array: \| key:val \| key 2:val 2#';
69
    }
70
71
    public function testMessageWithContext()
72
    {
73
        $context = ['context' => 'some value'];
74
        $message = (new DefaultInlineMessage)->createMessage('Some log message with {context}', $context)->getMessage();
75
76
        $this->assertRegExp($this->getSampleContentWithContext(), $message);
77
    }
78
79
    protected function getSampleContentWithContext()
80
    {
81
        return '#\[' . self::DATE_TIME_FORMAT . '] Some log message with some value#';
82
    }
83
84
    /**
85
     * @expectedException \InvalidArgumentException
86
     * @expectedExceptionMessage Incorrect message type. Must be string, array or object with __toString method.
87
     */
88
    public function testMessageWithError()
89
    {
90
        (new DefaultInlineMessage)->createMessage(32432, [])->getMessage();
91
    }
92
}
93