* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Tests\Catalogue; use Symfony\Component\Translation\Catalogue\TargetOperation; use Symfony\Component\Translation\MessageCatalogue; use Symfony\Component\Translation\MessageCatalogueInterface; class TargetOperationTest extends AbstractOperationTest { public function testGetMessagesFromSingleDomain() { $operation = $this->createOperation( new MessageCatalogue('en', ['messages' => ['a' => 'old_a', 'b' => 'old_b']]), new MessageCatalogue('en', ['messages' => ['a' => 'new_a', 'c' => 'new_c']]) ); $this->assertEquals( ['a' => 'old_a', 'c' => 'new_c'], $operation->getMessages('messages') ); $this->assertEquals( ['c' => 'new_c'], $operation->getNewMessages('messages') ); $this->assertEquals( ['b' => 'old_b'], $operation->getObsoleteMessages('messages') ); } public function testGetResultFromSingleDomain() { $this->assertEquals( new MessageCatalogue('en', [ 'messages' => ['a' => 'old_a', 'c' => 'new_c'], ]), $this->createOperation( new MessageCatalogue('en', ['messages' => ['a' => 'old_a', 'b' => 'old_b']]), new MessageCatalogue('en', ['messages' => ['a' => 'new_a', 'c' => 'new_c']]) )->getResult() ); } public function testGetResultFromIntlDomain() { $this->assertEquals( new MessageCatalogue('en', [ 'messages' => ['a' => 'old_a'], 'messages+intl-icu' => ['c' => 'new_c'], ]), $this->createOperation( new MessageCatalogue('en', ['messages' => ['a' => 'old_a'], 'messages+intl-icu' => ['b' => 'old_b']]), new MessageCatalogue('en', ['messages' => ['a' => 'new_a'], 'messages+intl-icu' => ['c' => 'new_c']]) )->getResult() ); } public function testGetResultWithMetadata() { $leftCatalogue = new MessageCatalogue('en', ['messages' => ['a' => 'old_a', 'b' => 'old_b']]); $leftCatalogue->setMetadata('a', 'foo', 'messages'); $leftCatalogue->setMetadata('b', 'bar', 'messages'); $rightCatalogue = new MessageCatalogue('en', ['messages' => ['b' => 'new_b', 'c' => 'new_c']]); $rightCatalogue->setMetadata('b', 'baz', 'messages'); $rightCatalogue->setMetadata('c', 'qux', 'messages'); $diffCatalogue = new MessageCatalogue('en', ['messages' => ['b' => 'old_b', 'c' => 'new_c']]); $diffCatalogue->setMetadata('b', 'bar', 'messages'); $diffCatalogue->setMetadata('c', 'qux', 'messages'); $this->assertEquals( $diffCatalogue, $this->createOperation( $leftCatalogue, $rightCatalogue )->getResult() ); } protected function createOperation(MessageCatalogueInterface $source, MessageCatalogueInterface $target) { return new TargetOperation($source, $target); } }