Completed
Push — master ( 6d6b78...3237ec )
by Tobias
04:15
created

MessageTest::testImmutability()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 12
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of the PHP Translation package.
5
 *
6
 * (c) PHP Translation team <[email protected]>
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 Translation\common\tests\Unit\Model;
13
14
use PHPUnit\Framework\TestCase;
15
use Translation\Common\Model\Message;
16
17
/**
18
 * @author Tobias Nyholm <[email protected]>
19
 */
20
class MessageTest extends TestCase
21
{
22
    public function testAccessors()
23
    {
24
        $message = new Message('key', 'domain', 'locale', 'translation');
25
26
        $this->assertEquals('key', $message->getKey());
27
        $this->assertEquals('domain', $message->getDomain());
28
        $this->assertEquals('locale', $message->getLocale());
29
        $this->assertEquals('translation', $message->getTranslation());
30
31
        $message = $message->withDomain('domain_foo');
32
        $this->assertEquals('domain_foo', $message->getDomain());
33
        $message = $message->withLocale('locale_foo');
34
        $this->assertEquals('locale_foo', $message->getLocale());
35
        $message = $message->withTranslation('trans_foo');
36
        $this->assertEquals('trans_foo', $message->getTranslation());
37
    }
38
39
    public function testMeta()
40
    {
41
        $message = new Message('', '', '', '', ['foo' => 'bar']);
42
43
        $this->assertEquals(['foo' => 'bar'], $message->getAllMeta());
44
        $this->assertEquals('bar', $message->getMeta('foo'));
45
46
        $message = $message->withAddedMeta('key', 'value');
47
        $this->assertEquals('value', $message->getMeta('key'));
48
49
        $message = $message->withMeta(['new' => 'values']);
50
        $this->assertNull($message->getMeta('key'));
51
        $this->assertEquals('values', $message->getMeta('new'));
52
    }
53
54
    public function testImmutability()
55
    {
56
        $message = new Message('key', 'domain', 'locale', 'translation', ['foo' => 'bar']);
57
58
        $message->withDomain('domain_foo');
59
        $message->withLocale('locale_foo');
60
        $message->withTranslation('trans_foo');
61
        $message->withMeta(['new' => 'values']);
62
        $message->withAddedMeta('key', 'value');
63
64
        $this->assertEquals('key', $message->getKey());
65
        $this->assertEquals('domain', $message->getDomain());
66
        $this->assertEquals('locale', $message->getLocale());
67
        $this->assertEquals('translation', $message->getTranslation());
68
        $this->assertEquals(['foo' => 'bar'], $message->getAllMeta());
69
    }
70
}
71