8b51c15daec9210788f1e6d7ba5754664401bd63
[yaffs-website] / vendor / symfony / translation / Tests / Catalogue / MergeOperationTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
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 Symfony\Component\Translation\Tests\Catalogue;
13
14 use Symfony\Component\Translation\Catalogue\MergeOperation;
15 use Symfony\Component\Translation\MessageCatalogue;
16 use Symfony\Component\Translation\MessageCatalogueInterface;
17
18 class MergeOperationTest extends AbstractOperationTest
19 {
20     public function testGetMessagesFromSingleDomain()
21     {
22         $operation = $this->createOperation(
23             new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b'))),
24             new MessageCatalogue('en', array('messages' => array('a' => 'new_a', 'c' => 'new_c')))
25         );
26
27         $this->assertEquals(
28             array('a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c'),
29             $operation->getMessages('messages')
30         );
31
32         $this->assertEquals(
33             array('c' => 'new_c'),
34             $operation->getNewMessages('messages')
35         );
36
37         $this->assertEquals(
38             array(),
39             $operation->getObsoleteMessages('messages')
40         );
41     }
42
43     public function testGetResultFromSingleDomain()
44     {
45         $this->assertEquals(
46             new MessageCatalogue('en', array(
47                 'messages' => array('a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c'),
48             )),
49             $this->createOperation(
50                 new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b'))),
51                 new MessageCatalogue('en', array('messages' => array('a' => 'new_a', 'c' => 'new_c')))
52             )->getResult()
53         );
54     }
55
56     public function testGetResultWithMetadata()
57     {
58         $leftCatalogue = new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b')));
59         $leftCatalogue->setMetadata('a', 'foo', 'messages');
60         $leftCatalogue->setMetadata('b', 'bar', 'messages');
61         $rightCatalogue = new MessageCatalogue('en', array('messages' => array('b' => 'new_b', 'c' => 'new_c')));
62         $rightCatalogue->setMetadata('b', 'baz', 'messages');
63         $rightCatalogue->setMetadata('c', 'qux', 'messages');
64
65         $mergedCatalogue = new MessageCatalogue('en', array('messages' => array('a' => 'old_a', 'b' => 'old_b', 'c' => 'new_c')));
66         $mergedCatalogue->setMetadata('a', 'foo', 'messages');
67         $mergedCatalogue->setMetadata('b', 'bar', 'messages');
68         $mergedCatalogue->setMetadata('c', 'qux', 'messages');
69
70         $this->assertEquals(
71             $mergedCatalogue,
72             $this->createOperation(
73                 $leftCatalogue,
74                 $rightCatalogue
75             )->getResult()
76         );
77     }
78
79     protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
80     {
81         return new MergeOperation($source, $target);
82     }
83 }