From 5607732a66a35b55f002ce90d29555e83beb2583 Mon Sep 17 00:00:00 2001 From: Clemens Tolboom Date: Thu, 24 May 2012 16:20:13 +0200 Subject: [PATCH 1/6] [Translation] added Metadata to MessageCatalogue --- .../Translation/MessageCatalogue.php | 87 +++++++++++++++++++ .../Translation/MessageCatalogueInterface.php | 25 ++++++ .../Tests/MessageCatalogueTest.php | 75 ++++++++++++++++ 3 files changed, 187 insertions(+) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 49ce9fd0708b6..0ecddb0174b60 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -23,6 +23,7 @@ class MessageCatalogue implements MessageCatalogueInterface { private $messages = array(); + private $metaData = array(); private $locale; private $resources; private $fallbackCatalogue; @@ -175,6 +176,9 @@ public function addCatalogue(MessageCatalogueInterface $catalogue) foreach ($catalogue->getResources() as $resource) { $this->addResource($resource); } + + $meta = $catalogue->getMetaData(); + $this->addMetaData($meta); } /** @@ -231,4 +235,87 @@ public function addResource(ResourceInterface $resource) { $this->resources[] = $resource; } + + /** + * {@inheritdoc} + * + * @api + */ + public function getMetaData($domain = '', $key = '') + { + if (empty($domain)) { + return $this->metaData; + } + + if (!is_string($domain)) { + throw new \InvalidArgumentException("Domain should be an string."); + } + if (!is_string($key)) { + throw new \InvalidArgumentException("Key should be an string."); + } + if (isset($this->metaData[$domain])) { + if (!empty($key)) { + if (isset($this->metaData[$domain][$key])) { + return $this->metaData[$domain][$key]; + } + } else { + return $this->metaData[$domain]; + } + } + } + + /** + * {@inheritdoc} + * + * @api + */ + public function setMetaData($key, $value, $domain = 'messages') + { + if (!is_string($key)) { + throw new \InvalidArgumentException("Key should be an string."); + } + if (!isset($this->metaData[$domain])) { + $this->metaData[$domain] = array(); + } + $this->metaData[$domain][$key] = $value; + } + + /** + * {@inheritdoc} + * + * @api + */ + public function deleteMetaData($domain = '', $key = '') + { + if (empty($domain)) { + $this->metaData = array(); + } + if (!is_string($domain)) { + throw new \InvalidArgumentException("Domain should be an string."); + } + if (empty($key)) { + unset($this->metaData[$domain]); + } + if (!is_string($key)) { + throw new \InvalidArgumentException("Key should be an string."); + } + unset($this->metaData[$domain][$key]); + } + + /** + * Adds or overwrite current values with the new values. + * + * TODO: do we want to overwrite values?!? + * + * @param array $values Values to add + */ + private function addMetaData(array $values) + { + foreach ($values as $domain => $keys) { + foreach ($keys as $key => $value) { + $this->setMetaData($key, $value, $domain); + } + } + } + } diff --git a/src/Symfony/Component/Translation/MessageCatalogueInterface.php b/src/Symfony/Component/Translation/MessageCatalogueInterface.php index 81b5c1d7ac675..1f30d3204ab48 100644 --- a/src/Symfony/Component/Translation/MessageCatalogueInterface.php +++ b/src/Symfony/Component/Translation/MessageCatalogueInterface.php @@ -169,4 +169,29 @@ public function getResources(); * @api */ public function addResource(ResourceInterface $resource); + + /** + * Gets meta data for given domain and key. + * + * @param string $key Key to set + * @param string $domain The domain name + */ + public function getMetaData($domain = '', $key = ''); + + /** + * Adds meta data to a message domain. + * + * @param string $key Key to set + * @param string|array $value Value to store + * @param string $domain The domain name + */ + public function setMetaData($key, $value, $domain = 'messages'); + + /** + * Deletes meta data for given key and domain + * + * @param string $key Key to set + * @param string $domain The domain name + */ + public function deleteMetaData($domain = '', $key = ''); } diff --git a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php index 0448e3ce74cd8..92bdd02af2fcc 100644 --- a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php +++ b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php @@ -170,4 +170,79 @@ public function testGetAddResource() $this->assertEquals(array($r, $r1), $catalogue->getResources()); } + + public function testMetaDataDelete() + { + $catalogue = new MessageCatalogue('en'); + $expected = array(); + $actual = $catalogue->getMetaData(); + $this->assertEquals($expected, $actual, 'Metadata is empty'); + $catalogue->deleteMetaData('messages', 'key'); + $catalogue->deleteMetaData('messages'); + $catalogue->deleteMetaData(); + } + + public function testMetaDataSetGetDelete() + { + $catalogue = new MessageCatalogue('en'); + $catalogue->setMetaData('key', 'value'); + $expected = 'value'; + $actual = $catalogue->getMetaData('messages', 'key'); + $this->assertEquals($expected, $actual, "Metadata 'key' = 'value'"); + + $catalogue->setMetaData('key2', array()); + $expected = array(); + $actual = $catalogue->getMetaData('messages', 'key2'); + $this->assertEquals($expected, $actual, 'Metadata key2 is array'); + + $catalogue->deleteMetaData('messages', 'key2'); + $expected = null; + $actual = $catalogue->getMetaData('messages', 'key2'); + $this->assertEquals($expected, $actual, 'Metadata key2 should is deleted.'); + + $catalogue->deleteMetaData('domain', 'key2'); + $expected = null; + $actual = $catalogue->getMetaData('domain', 'key2'); + $this->assertEquals($expected, $actual, 'Metadata key2 should is deleted.'); + + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testMetaDataExceptionsKey() + { + $catalogue = new MessageCatalogue('en'); + $catalogue->deleteMetaData('messages', array()); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testMetaDataExceptionsDomain() + { + $catalogue = new MessageCatalogue('en'); + $catalogue->deleteMetaData(array()); + } + + public function testMetaDataMerge() + { + $cat1 = new MessageCatalogue('en'); + $cat1->setMetaData('a','b'); + $expected = array('messages'=>array('a'=>'b')); + $actual = $cat1->getMetaData(); + $this->assertEquals($expected, $actual, 'Cat1 contains messages metadata.'); + + $cat2 = new MessageCatalogue('en'); + $cat2->setMetaData('b', 'c', 'domain'); + $expected = array('domain'=>array('b'=>'c')); + $actual = $cat2->getMetaData(); + $this->assertEquals($expected, $actual, 'Cat2 contains domain metadata.'); + + $cat1->addCatalogue($cat2); + $expected = array('messages'=>array('a'=>'b'),'domain'=>array('b'=>'c')); + $actual = $cat1->getMetaData(); + $this->assertEquals($expected, $actual, 'Cat1 contains merged metadata.'); + + } } From 23e9e65c00717c7dace5db2096bc0c1b1ddaea64 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 14 Dec 2012 13:35:59 +0100 Subject: [PATCH 2/6] [Translation] fixed name --- .../Translation/MessageCatalogue.php | 39 +++++++-------- .../Tests/MessageCatalogueTest.php | 49 +++++++++---------- 2 files changed, 43 insertions(+), 45 deletions(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 0ecddb0174b60..e830f3cba0301 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -23,7 +23,7 @@ class MessageCatalogue implements MessageCatalogueInterface { private $messages = array(); - private $metaData = array(); + private $metadata = array(); private $locale; private $resources; private $fallbackCatalogue; @@ -177,8 +177,8 @@ public function addCatalogue(MessageCatalogueInterface $catalogue) $this->addResource($resource); } - $meta = $catalogue->getMetaData(); - $this->addMetaData($meta); + $metadata = $catalogue->getMetadata(); + $this->addMetadata($metadata); } /** @@ -241,10 +241,10 @@ public function addResource(ResourceInterface $resource) * * @api */ - public function getMetaData($domain = '', $key = '') + public function getMetadata($domain = '', $key = '') { if (empty($domain)) { - return $this->metaData; + return $this->metadata; } if (!is_string($domain)) { @@ -253,13 +253,13 @@ public function getMetaData($domain = '', $key = '') if (!is_string($key)) { throw new \InvalidArgumentException("Key should be an string."); } - if (isset($this->metaData[$domain])) { + if (isset($this->metadata[$domain])) { if (!empty($key)) { - if (isset($this->metaData[$domain][$key])) { - return $this->metaData[$domain][$key]; + if (isset($this->metadata[$domain][$key])) { + return $this->metadata[$domain][$key]; } } else { - return $this->metaData[$domain]; + return $this->metadata[$domain]; } } } @@ -269,15 +269,15 @@ public function getMetaData($domain = '', $key = '') * * @api */ - public function setMetaData($key, $value, $domain = 'messages') + public function setMetadata($key, $value, $domain = 'messages') { if (!is_string($key)) { throw new \InvalidArgumentException("Key should be an string."); } - if (!isset($this->metaData[$domain])) { - $this->metaData[$domain] = array(); + if (!isset($this->metadata[$domain])) { + $this->metadata[$domain] = array(); } - $this->metaData[$domain][$key] = $value; + $this->metadata[$domain][$key] = $value; } /** @@ -285,21 +285,21 @@ public function setMetaData($key, $value, $domain = 'messages') * * @api */ - public function deleteMetaData($domain = '', $key = '') + public function deleteMetadata($domain = '', $key = '') { if (empty($domain)) { - $this->metaData = array(); + $this->metadata = array(); } if (!is_string($domain)) { throw new \InvalidArgumentException("Domain should be an string."); } if (empty($key)) { - unset($this->metaData[$domain]); + unset($this->metadata[$domain]); } if (!is_string($key)) { throw new \InvalidArgumentException("Key should be an string."); } - unset($this->metaData[$domain][$key]); + unset($this->metadata[$domain][$key]); } /** @@ -309,13 +309,12 @@ public function deleteMetaData($domain = '', $key = '') * * @param array $values Values to add */ - private function addMetaData(array $values) + private function addMetadata(array $values) { foreach ($values as $domain => $keys) { foreach ($keys as $key => $value) { - $this->setMetaData($key, $value, $domain); + $this->setMetadata($key, $value, $domain); } } } - } diff --git a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php index 92bdd02af2fcc..1260d7df5a624 100644 --- a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php +++ b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php @@ -171,38 +171,38 @@ public function testGetAddResource() $this->assertEquals(array($r, $r1), $catalogue->getResources()); } - public function testMetaDataDelete() + public function testMetadataDelete() { $catalogue = new MessageCatalogue('en'); $expected = array(); - $actual = $catalogue->getMetaData(); + $actual = $catalogue->getMetadata(); $this->assertEquals($expected, $actual, 'Metadata is empty'); - $catalogue->deleteMetaData('messages', 'key'); - $catalogue->deleteMetaData('messages'); - $catalogue->deleteMetaData(); + $catalogue->deleteMetadata('messages', 'key'); + $catalogue->deleteMetadata('messages'); + $catalogue->deleteMetadata(); } - public function testMetaDataSetGetDelete() + public function testMetadataSetGetDelete() { $catalogue = new MessageCatalogue('en'); - $catalogue->setMetaData('key', 'value'); + $catalogue->setMetadata('key', 'value'); $expected = 'value'; - $actual = $catalogue->getMetaData('messages', 'key'); + $actual = $catalogue->getMetadata('messages', 'key'); $this->assertEquals($expected, $actual, "Metadata 'key' = 'value'"); - $catalogue->setMetaData('key2', array()); + $catalogue->setMetadata('key2', array()); $expected = array(); - $actual = $catalogue->getMetaData('messages', 'key2'); + $actual = $catalogue->getMetadata('messages', 'key2'); $this->assertEquals($expected, $actual, 'Metadata key2 is array'); - $catalogue->deleteMetaData('messages', 'key2'); + $catalogue->deleteMetadata('messages', 'key2'); $expected = null; - $actual = $catalogue->getMetaData('messages', 'key2'); + $actual = $catalogue->getMetadata('messages', 'key2'); $this->assertEquals($expected, $actual, 'Metadata key2 should is deleted.'); - $catalogue->deleteMetaData('domain', 'key2'); + $catalogue->deleteMetadata('domain', 'key2'); $expected = null; - $actual = $catalogue->getMetaData('domain', 'key2'); + $actual = $catalogue->getMetadata('domain', 'key2'); $this->assertEquals($expected, $actual, 'Metadata key2 should is deleted.'); } @@ -210,39 +210,38 @@ public function testMetaDataSetGetDelete() /** * @expectedException \InvalidArgumentException */ - public function testMetaDataExceptionsKey() + public function testMetadataExceptionsKey() { $catalogue = new MessageCatalogue('en'); - $catalogue->deleteMetaData('messages', array()); + $catalogue->deleteMetadata('messages', array()); } /** * @expectedException \InvalidArgumentException */ - public function testMetaDataExceptionsDomain() + public function testMetadataExceptionsDomain() { $catalogue = new MessageCatalogue('en'); - $catalogue->deleteMetaData(array()); + $catalogue->deleteMetadata(array()); } - public function testMetaDataMerge() + public function testMetadataMerge() { $cat1 = new MessageCatalogue('en'); - $cat1->setMetaData('a','b'); + $cat1->setMetadata('a','b'); $expected = array('messages'=>array('a'=>'b')); - $actual = $cat1->getMetaData(); + $actual = $cat1->getMetadata(); $this->assertEquals($expected, $actual, 'Cat1 contains messages metadata.'); $cat2 = new MessageCatalogue('en'); - $cat2->setMetaData('b', 'c', 'domain'); + $cat2->setMetadata('b', 'c', 'domain'); $expected = array('domain'=>array('b'=>'c')); - $actual = $cat2->getMetaData(); + $actual = $cat2->getMetadata(); $this->assertEquals($expected, $actual, 'Cat2 contains domain metadata.'); $cat1->addCatalogue($cat2); $expected = array('messages'=>array('a'=>'b'),'domain'=>array('b'=>'c')); - $actual = $cat1->getMetaData(); + $actual = $cat1->getMetadata(); $this->assertEquals($expected, $actual, 'Cat1 contains merged metadata.'); - } } From 63719a0a19bfc8bf5a77acf61aa2ca4b167e744b Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 14 Dec 2012 13:37:57 +0100 Subject: [PATCH 3/6] [Translation] created a new interface to avoid breaking BC --- .../Translation/MessageCatalogue.php | 12 +---- .../Translation/MessageCatalogueInterface.php | 25 ---------- .../Translation/MetadataAwareInterface.php | 47 +++++++++++++++++++ 3 files changed, 49 insertions(+), 35 deletions(-) create mode 100644 src/Symfony/Component/Translation/MetadataAwareInterface.php diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index e830f3cba0301..42a90df88066d 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -20,7 +20,7 @@ * * @api */ -class MessageCatalogue implements MessageCatalogueInterface +class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterface { private $messages = array(); private $metadata = array(); @@ -238,8 +238,6 @@ public function addResource(ResourceInterface $resource) /** * {@inheritdoc} - * - * @api */ public function getMetadata($domain = '', $key = '') { @@ -266,8 +264,6 @@ public function getMetadata($domain = '', $key = '') /** * {@inheritdoc} - * - * @api */ public function setMetadata($key, $value, $domain = 'messages') { @@ -282,8 +278,6 @@ public function setMetadata($key, $value, $domain = 'messages') /** * {@inheritdoc} - * - * @api */ public function deleteMetadata($domain = '', $key = '') { @@ -303,9 +297,7 @@ public function deleteMetadata($domain = '', $key = '') } /** - * Adds or overwrite current values with the new values. - * - * TODO: do we want to overwrite values?!? + * Adds current values with the new values. * * @param array $values Values to add */ diff --git a/src/Symfony/Component/Translation/MessageCatalogueInterface.php b/src/Symfony/Component/Translation/MessageCatalogueInterface.php index 1f30d3204ab48..81b5c1d7ac675 100644 --- a/src/Symfony/Component/Translation/MessageCatalogueInterface.php +++ b/src/Symfony/Component/Translation/MessageCatalogueInterface.php @@ -169,29 +169,4 @@ public function getResources(); * @api */ public function addResource(ResourceInterface $resource); - - /** - * Gets meta data for given domain and key. - * - * @param string $key Key to set - * @param string $domain The domain name - */ - public function getMetaData($domain = '', $key = ''); - - /** - * Adds meta data to a message domain. - * - * @param string $key Key to set - * @param string|array $value Value to store - * @param string $domain The domain name - */ - public function setMetaData($key, $value, $domain = 'messages'); - - /** - * Deletes meta data for given key and domain - * - * @param string $key Key to set - * @param string $domain The domain name - */ - public function deleteMetaData($domain = '', $key = ''); } diff --git a/src/Symfony/Component/Translation/MetadataAwareInterface.php b/src/Symfony/Component/Translation/MetadataAwareInterface.php new file mode 100644 index 0000000000000..360ce1ec1e412 --- /dev/null +++ b/src/Symfony/Component/Translation/MetadataAwareInterface.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Translation; + +use Symfony\Component\Config\Resource\ResourceInterface; + +/** + * MetadataAwareInterface. + * + * @author Fabien Potencier + */ +interface MetadataAwareInterface +{ + /** + * Gets meta data for given domain and key. + * + * @param string $key Key to set + * @param string $domain The domain name + */ + public function getMetadata($domain = '', $key = ''); + + /** + * Adds meta data to a message domain. + * + * @param string $key Key to set + * @param string|array $value Value to store + * @param string $domain The domain name + */ + public function setMetadata($key, $value, $domain = 'messages'); + + /** + * Deletes meta data for given key and domain. + * + * @param string $key Key to set + * @param string $domain The domain name + */ + public function deleteMetadata($domain = '', $key = ''); +} From c40db35c9190ba481eedc789d503348e51c44520 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 14 Dec 2012 14:04:54 +0100 Subject: [PATCH 4/6] [Translation] removed some code that is not done anywhere else in Symfony --- .../Translation/MessageCatalogue.php | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 42a90df88066d..6cfcf22eccf74 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -245,12 +245,6 @@ public function getMetadata($domain = '', $key = '') return $this->metadata; } - if (!is_string($domain)) { - throw new \InvalidArgumentException("Domain should be an string."); - } - if (!is_string($key)) { - throw new \InvalidArgumentException("Key should be an string."); - } if (isset($this->metadata[$domain])) { if (!empty($key)) { if (isset($this->metadata[$domain][$key])) { @@ -267,12 +261,6 @@ public function getMetadata($domain = '', $key = '') */ public function setMetadata($key, $value, $domain = 'messages') { - if (!is_string($key)) { - throw new \InvalidArgumentException("Key should be an string."); - } - if (!isset($this->metadata[$domain])) { - $this->metadata[$domain] = array(); - } $this->metadata[$domain][$key] = $value; } @@ -284,15 +272,11 @@ public function deleteMetadata($domain = '', $key = '') if (empty($domain)) { $this->metadata = array(); } - if (!is_string($domain)) { - throw new \InvalidArgumentException("Domain should be an string."); - } + if (empty($key)) { unset($this->metadata[$domain]); } - if (!is_string($key)) { - throw new \InvalidArgumentException("Key should be an string."); - } + unset($this->metadata[$domain][$key]); } From 11ff4330c5d27fb7c4afea88e49dac38fc4c2175 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 14 Dec 2012 14:05:25 +0100 Subject: [PATCH 5/6] [Translation] fixed CS in unit tests --- .../Tests/MessageCatalogueTest.php | 53 ++++--------------- 1 file changed, 9 insertions(+), 44 deletions(-) diff --git a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php index 1260d7df5a624..f85b60b8dda81 100644 --- a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php +++ b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php @@ -174,9 +174,7 @@ public function testGetAddResource() public function testMetadataDelete() { $catalogue = new MessageCatalogue('en'); - $expected = array(); - $actual = $catalogue->getMetadata(); - $this->assertEquals($expected, $actual, 'Metadata is empty'); + $this->assertEquals(array(), $catalogue->getMetadata(), 'Metadata is empty'); $catalogue->deleteMetadata('messages', 'key'); $catalogue->deleteMetadata('messages'); $catalogue->deleteMetadata(); @@ -186,62 +184,29 @@ public function testMetadataSetGetDelete() { $catalogue = new MessageCatalogue('en'); $catalogue->setMetadata('key', 'value'); - $expected = 'value'; - $actual = $catalogue->getMetadata('messages', 'key'); - $this->assertEquals($expected, $actual, "Metadata 'key' = 'value'"); + $this->assertEquals('value', $catalogue->getMetadata('messages', 'key'), "Metadata 'key' = 'value'"); $catalogue->setMetadata('key2', array()); - $expected = array(); - $actual = $catalogue->getMetadata('messages', 'key2'); - $this->assertEquals($expected, $actual, 'Metadata key2 is array'); + $this->assertEquals(array(), $catalogue->getMetadata('messages', 'key2'), 'Metadata key2 is array'); $catalogue->deleteMetadata('messages', 'key2'); - $expected = null; - $actual = $catalogue->getMetadata('messages', 'key2'); - $this->assertEquals($expected, $actual, 'Metadata key2 should is deleted.'); + $this->assertEquals(null, $catalogue->getMetadata('messages', 'key2'), 'Metadata key2 should is deleted.'); $catalogue->deleteMetadata('domain', 'key2'); - $expected = null; - $actual = $catalogue->getMetadata('domain', 'key2'); - $this->assertEquals($expected, $actual, 'Metadata key2 should is deleted.'); - - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testMetadataExceptionsKey() - { - $catalogue = new MessageCatalogue('en'); - $catalogue->deleteMetadata('messages', array()); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testMetadataExceptionsDomain() - { - $catalogue = new MessageCatalogue('en'); - $catalogue->deleteMetadata(array()); + $this->assertEquals(null, $catalogue->getMetadata('domain', 'key2'), 'Metadata key2 should is deleted.'); } public function testMetadataMerge() { $cat1 = new MessageCatalogue('en'); - $cat1->setMetadata('a','b'); - $expected = array('messages'=>array('a'=>'b')); - $actual = $cat1->getMetadata(); - $this->assertEquals($expected, $actual, 'Cat1 contains messages metadata.'); + $cat1->setMetadata('a', 'b'); + $this->assertEquals(array('messages' => array('a' => 'b')), $cat1->getMetadata(), 'Cat1 contains messages metadata.'); $cat2 = new MessageCatalogue('en'); $cat2->setMetadata('b', 'c', 'domain'); - $expected = array('domain'=>array('b'=>'c')); - $actual = $cat2->getMetadata(); - $this->assertEquals($expected, $actual, 'Cat2 contains domain metadata.'); + $this->assertEquals(array('domain' => array('b' => 'c')), $cat2->getMetadata(), 'Cat2 contains domain metadata.'); $cat1->addCatalogue($cat2); - $expected = array('messages'=>array('a'=>'b'),'domain'=>array('b'=>'c')); - $actual = $cat1->getMetadata(); - $this->assertEquals($expected, $actual, 'Cat1 contains merged metadata.'); + $this->assertEquals(array('messages' => array('a' => 'b'), 'domain' => array('b' => 'c')), $cat1->getMetadata(), 'Cat1 contains merged metadata.'); } } From 320fb6cedf2eafeb0bc38bd4330c374ce2868b38 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 14 Dec 2012 14:10:50 +0100 Subject: [PATCH 6/6] [Translation] changed the MetadataAwareInterface method signatures --- .../Translation/MessageCatalogue.php | 6 ++--- .../Translation/MetadataAwareInterface.php | 12 +++++----- .../Tests/MessageCatalogueTest.php | 24 +++++++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Symfony/Component/Translation/MessageCatalogue.php b/src/Symfony/Component/Translation/MessageCatalogue.php index 6cfcf22eccf74..e854732f71737 100644 --- a/src/Symfony/Component/Translation/MessageCatalogue.php +++ b/src/Symfony/Component/Translation/MessageCatalogue.php @@ -177,7 +177,7 @@ public function addCatalogue(MessageCatalogueInterface $catalogue) $this->addResource($resource); } - $metadata = $catalogue->getMetadata(); + $metadata = $catalogue->getMetadata('', ''); $this->addMetadata($metadata); } @@ -239,7 +239,7 @@ public function addResource(ResourceInterface $resource) /** * {@inheritdoc} */ - public function getMetadata($domain = '', $key = '') + public function getMetadata($key = '', $domain = 'messages') { if (empty($domain)) { return $this->metadata; @@ -267,7 +267,7 @@ public function setMetadata($key, $value, $domain = 'messages') /** * {@inheritdoc} */ - public function deleteMetadata($domain = '', $key = '') + public function deleteMetadata($key = '', $domain = 'messages') { if (empty($domain)) { $this->metadata = array(); diff --git a/src/Symfony/Component/Translation/MetadataAwareInterface.php b/src/Symfony/Component/Translation/MetadataAwareInterface.php index 360ce1ec1e412..92cf768d3e1b9 100644 --- a/src/Symfony/Component/Translation/MetadataAwareInterface.php +++ b/src/Symfony/Component/Translation/MetadataAwareInterface.php @@ -23,16 +23,16 @@ interface MetadataAwareInterface /** * Gets meta data for given domain and key. * - * @param string $key Key to set * @param string $domain The domain name + * @param string $key Key */ - public function getMetadata($domain = '', $key = ''); + public function getMetadata($key = '', $domain = 'messages'); /** * Adds meta data to a message domain. * - * @param string $key Key to set - * @param string|array $value Value to store + * @param string $key Key + * @param string|array $value Value * @param string $domain The domain name */ public function setMetadata($key, $value, $domain = 'messages'); @@ -40,8 +40,8 @@ public function setMetadata($key, $value, $domain = 'messages'); /** * Deletes meta data for given key and domain. * - * @param string $key Key to set * @param string $domain The domain name + * @param string $key Key */ - public function deleteMetadata($domain = '', $key = ''); + public function deleteMetadata($key = '', $domain = 'messages'); } diff --git a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php index f85b60b8dda81..aa6f87079eba4 100644 --- a/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php +++ b/src/Symfony/Component/Translation/Tests/MessageCatalogueTest.php @@ -174,9 +174,9 @@ public function testGetAddResource() public function testMetadataDelete() { $catalogue = new MessageCatalogue('en'); - $this->assertEquals(array(), $catalogue->getMetadata(), 'Metadata is empty'); - $catalogue->deleteMetadata('messages', 'key'); - $catalogue->deleteMetadata('messages'); + $this->assertEquals(array(), $catalogue->getMetadata('', ''), 'Metadata is empty'); + $catalogue->deleteMetadata('key', 'messages'); + $catalogue->deleteMetadata('', 'messages'); $catalogue->deleteMetadata(); } @@ -184,29 +184,29 @@ public function testMetadataSetGetDelete() { $catalogue = new MessageCatalogue('en'); $catalogue->setMetadata('key', 'value'); - $this->assertEquals('value', $catalogue->getMetadata('messages', 'key'), "Metadata 'key' = 'value'"); + $this->assertEquals('value', $catalogue->getMetadata('key', 'messages'), "Metadata 'key' = 'value'"); $catalogue->setMetadata('key2', array()); - $this->assertEquals(array(), $catalogue->getMetadata('messages', 'key2'), 'Metadata key2 is array'); + $this->assertEquals(array(), $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 is array'); - $catalogue->deleteMetadata('messages', 'key2'); - $this->assertEquals(null, $catalogue->getMetadata('messages', 'key2'), 'Metadata key2 should is deleted.'); + $catalogue->deleteMetadata('key2', 'messages'); + $this->assertEquals(null, $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 should is deleted.'); - $catalogue->deleteMetadata('domain', 'key2'); - $this->assertEquals(null, $catalogue->getMetadata('domain', 'key2'), 'Metadata key2 should is deleted.'); + $catalogue->deleteMetadata('key2', 'domain'); + $this->assertEquals(null, $catalogue->getMetadata('key2', 'domain'), 'Metadata key2 should is deleted.'); } public function testMetadataMerge() { $cat1 = new MessageCatalogue('en'); $cat1->setMetadata('a', 'b'); - $this->assertEquals(array('messages' => array('a' => 'b')), $cat1->getMetadata(), 'Cat1 contains messages metadata.'); + $this->assertEquals(array('messages' => array('a' => 'b')), $cat1->getMetadata('', ''), 'Cat1 contains messages metadata.'); $cat2 = new MessageCatalogue('en'); $cat2->setMetadata('b', 'c', 'domain'); - $this->assertEquals(array('domain' => array('b' => 'c')), $cat2->getMetadata(), 'Cat2 contains domain metadata.'); + $this->assertEquals(array('domain' => array('b' => 'c')), $cat2->getMetadata('', ''), 'Cat2 contains domain metadata.'); $cat1->addCatalogue($cat2); - $this->assertEquals(array('messages' => array('a' => 'b'), 'domain' => array('b' => 'c')), $cat1->getMetadata(), 'Cat1 contains merged metadata.'); + $this->assertEquals(array('messages' => array('a' => 'b'), 'domain' => array('b' => 'c')), $cat1->getMetadata('', ''), 'Cat1 contains merged metadata.'); } }