Skip to content

Commit 03dd41f

Browse files
authored
Merge pull request #625 from schmittjoh/mowcixo-master
Added public `hasData` function to check if a data key already have been added.
2 parents 8c18b3a + 31e9c5a commit 03dd41f

3 files changed

Lines changed: 24 additions & 0 deletions

File tree

src/JMS/Serializer/GenericSerializationVisitor.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,17 @@ public function addData($key, $value)
174174

175175
$this->data[$key] = $value;
176176
}
177+
178+
/**
179+
* Checks if some data key exists.
180+
*
181+
* @param string $key
182+
* @return boolean
183+
*/
184+
public function hasData($key)
185+
{
186+
return isset($this->data[$key]);
187+
}
177188

178189
public function getRoot()
179190
{

tests/JMS/Serializer/Tests/Serializer/BaseSerializationTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@
105105
abstract class BaseSerializationTest extends \PHPUnit_Framework_TestCase
106106
{
107107
protected $factory;
108+
109+
/**
110+
* @var EventDispatcher
111+
*/
108112
protected $dispatcher;
109113

110114
/** @var Serializer */

tests/JMS/Serializer/Tests/Serializer/JsonSerializationTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,16 @@ protected function getContent($key)
111111

112112
public function testAddLinksToOutput()
113113
{
114+
$this->dispatcher->addListener('serializer.post_serialize', function (Event $event) {
115+
$this->assertFalse($event->getVisitor()->hasData('_links'));
116+
}, 'JMS\Serializer\Tests\Fixtures\Author', 'json');
117+
114118
$this->dispatcher->addSubscriber(new LinkAddingSubscriber());
119+
120+
$this->dispatcher->addListener('serializer.post_serialize', function (Event $event) {
121+
$this->assertTrue($event->getVisitor()->hasData('_links'));
122+
}, 'JMS\Serializer\Tests\Fixtures\Author', 'json');
123+
115124
$this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, 'JMS\Serializer\Tests\Fixtures\AuthorList', 'json',
116125
function(VisitorInterface $visitor, AuthorList $data, array $type, Context $context) {
117126
return $visitor->visitArray(iterator_to_array($data), $type, $context);

0 commit comments

Comments
 (0)