|
@@ -24,6 +24,7 @@ use Symfony\Component\Form\FormError;
|
|
|
use Symfony\Component\Validator\ConstraintViolation;
|
|
|
use Symfony\Component\Validator\ConstraintViolationList;
|
|
|
use JMS\SerializerBundle\Serializer\Handler\DeserializationHandlerInterface;
|
|
|
+use JMS\SerializerBundle\Serializer\Handler\SerializationHandlerInterface;
|
|
|
use JMS\SerializerBundle\Tests\Fixtures\AuthorList;
|
|
|
use JMS\SerializerBundle\Serializer\VisitorInterface;
|
|
|
use JMS\SerializerBundle\Serializer\XmlDeserializationVisitor;
|
|
@@ -150,6 +151,13 @@ abstract class BaseSerializationTest extends \PHPUnit_Framework_TestCase
|
|
|
$this->assertAttributeEquals($author, 'author', $deserialized);
|
|
|
}
|
|
|
|
|
|
+ public function testArticle()
|
|
|
+ {
|
|
|
+ $article = new Article();
|
|
|
+
|
|
|
+ $this->assertEquals($this->getContent('article'), $this->serialize($article));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @group test
|
|
|
*/
|
|
@@ -328,4 +336,28 @@ class AuthorListDeserializationHandler implements DeserializationHandlerInterfac
|
|
|
|
|
|
return $list;
|
|
|
}
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+class Article implements SerializationHandlerInterface
|
|
|
+{
|
|
|
+ public function serialize(VisitorInterface $visitor, $data, $type, &$visited)
|
|
|
+ {
|
|
|
+ if (!$data instanceof Article) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($visitor instanceof XmlSerializationVisitor) {
|
|
|
+ $visited = true;
|
|
|
+
|
|
|
+ if (null === $visitor->document) {
|
|
|
+ $visitor->document = $visitor->createDocument(null, null, false);
|
|
|
+ }
|
|
|
+
|
|
|
+ $visitor->document->appendChild($visitor->document->createElement('custom', 'serialized'));
|
|
|
+ } elseif ($visitor instanceof JsonSerializationVisitor) {
|
|
|
+ $visited = true;
|
|
|
+
|
|
|
+ $visitor->setRoot(array('custom' => 'serialized'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|