Ver código fonte

added failing tests for wiring classes together

Johannes Schmitt 13 anos atrás
pai
commit
4419e64630

+ 11 - 5
Tests/DependencyInjection/JMSSerializerExtensionTest.php

@@ -18,6 +18,8 @@
 
 namespace JMS\SerializerBundle\Tests\DependencyInjection;
 
+use JMS\SerializerBundle\Tests\Fixtures\SimpleObject;
+
 use Doctrine\Common\Annotations\AnnotationReader;
 
 use Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass;
@@ -70,15 +72,19 @@ class JMSSerializerExtensionTest extends \PHPUnit_Framework_TestCase
         $container->getCompilerPassConfig()->setRemovingPasses(array());
         $container->compile();
 
-        $object  = new VersionedObject('foo', 'bar');
-
+        $simpleObject = new SimpleObject('foo', 'bar');
+        $versionedObject  = new VersionedObject('foo', 'bar');
         $serializer = $container->get('serializer');
-        $this->assertEquals(json_encode(array('name' => 'bar')), $serializer->serialize($object, 'json'));
+
+        // test that all components have been wired correctly
+        $this->assertEquals(json_encode(array('name' => 'bar')), $serializer->serialize($versionedObject, 'json'));
+        $this->assertEquals($simpleObject, $serializer->deserialize($serializer->serialize($simpleObject, 'json'), get_class($simpleObject), 'json'));
+        $this->assertEquals($simpleObject, $serializer->deserialize($serializer->serialize($simpleObject, 'xml'), get_class($simpleObject), 'xml'));
 
         $serializer->setVersion('0.0.1');
-        $this->assertEquals(json_encode(array('name' => 'foo')), $serializer->serialize($object, 'json'));
+        $this->assertEquals(json_encode(array('name' => 'foo')), $serializer->serialize($versionedObject, 'json'));
 
         $serializer->setVersion('1.1.1');
-        $this->assertEquals(json_encode(array('name' => 'bar')), $serializer->serialize($object, 'json'));
+        $this->assertEquals(json_encode(array('name' => 'bar')), $serializer->serialize($versionedObject, 'json'));
     }
 }