<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\MessageCatalogue; use Symfony\Component\Translation\TranslatorBag; class TranslatorBagTest extends TestCase { public function testAll() { $catalogue = new MessageCatalogue('en', $messages = ['domain1' => ['foo' => 'foo'], 'domain2' => ['bar' => 'bar']]); $bag = new TranslatorBag(); $bag->addCatalogue($catalogue); $this->assertEquals(['en' => $messages], $this->getAllMessagesFromTranslatorBag($bag)); $messages = ['domain1+intl-icu' => ['foo' => 'bar']] + $messages + [ 'domain2+intl-icu' => ['bar' => 'foo'], 'domain3+intl-icu' => ['biz' => 'biz'], ]; $catalogue = new MessageCatalogue('en', $messages); $bag = new TranslatorBag(); $bag->addCatalogue($catalogue); $this->assertEquals([ 'en' => [ 'domain1' => ['foo' => 'bar'], 'domain2' => ['bar' => 'foo'], 'domain3' => ['biz' => 'biz'], ], ], $this->getAllMessagesFromTranslatorBag($bag)); } public function testDiff() { $catalogueA = new MessageCatalogue('en', ['domain1' => ['foo' => 'foo', 'bar' => 'bar'], 'domain2' => ['baz' => 'baz', 'qux' => 'qux']]); $bagA = new TranslatorBag(); $bagA->addCatalogue($catalogueA); $catalogueB = new MessageCatalogue('en', ['domain1' => ['foo' => 'foo'], 'domain2' => ['baz' => 'baz', 'corge' => 'corge']]); $bagB = new TranslatorBag(); $bagB->addCatalogue($catalogueB); $bagResult = $bagA->diff($bagB); $this->assertEquals([ 'en' => [ 'domain1' => ['bar' => 'bar'], 'domain2' => ['qux' => 'qux'], ], ], $this->getAllMessagesFromTranslatorBag($bagResult)); } public function testIntersect() { $catalogueA = new MessageCatalogue('en', ['domain1' => ['foo' => 'foo', 'bar' => 'bar'], 'domain2' => ['baz' => 'baz', 'qux' => 'qux']]); $bagA = new TranslatorBag(); $bagA->addCatalogue($catalogueA); $catalogueB = new MessageCatalogue('en', ['domain1' => ['foo' => 'foo', 'baz' => 'baz'], 'domain2' => ['baz' => 'baz', 'corge' => 'corge']]); $bagB = new TranslatorBag(); $bagB->addCatalogue($catalogueB); $bagResult = $bagA->intersect($bagB); $this->assertEquals([ 'en' => [ 'domain1' => ['foo' => 'foo'], 'domain2' => ['baz' => 'baz'], ], ], $this->getAllMessagesFromTranslatorBag($bagResult)); } private function getAllMessagesFromTranslatorBag(TranslatorBag $translatorBag): array { $allMessages = []; foreach ($translatorBag->getCatalogues() as $catalogue) { $allMessages[$catalogue->getLocale()] = $catalogue->all(); } return $allMessages; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Catalogue | Folder | 0755 |
|
|
Command | Folder | 0755 |
|
|
DataCollector | Folder | 0755 |
|
|
DependencyInjection | Folder | 0755 |
|
|
Dumper | Folder | 0755 |
|
|
Exception | Folder | 0755 |
|
|
Extractor | Folder | 0755 |
|
|
Formatter | Folder | 0755 |
|
|
Loader | Folder | 0755 |
|
|
Provider | Folder | 0755 |
|
|
Util | Folder | 0755 |
|
|
Writer | Folder | 0755 |
|
|
fixtures | Folder | 0755 |
|
|
DataCollectorTranslatorTest.php | File | 3.29 KB | 0644 |
|
IdentityTranslatorTest.php | File | 985 B | 0644 |
|
LocaleSwitcherTest.php | File | 3.11 KB | 0644 |
|
LoggingTranslatorTest.php | File | 953 B | 0644 |
|
MessageCatalogueTest.php | File | 10.64 KB | 0644 |
|
PseudoLocalizationTranslatorTest.php | File | 4.94 KB | 0644 |
|
TranslatableTest.php | File | 2.98 KB | 0644 |
|
TranslatorBagTest.php | File | 3.28 KB | 0644 |
|
TranslatorCacheTest.php | File | 12.88 KB | 0644 |
|
TranslatorTest.php | File | 21.8 KB | 0644 |
|