SerializerExtensionTest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace JMS\Serializer\Tests\Twig;
  3. use JMS\Serializer\Twig\SerializerExtension;
  4. use JMS\Serializer\Twig\SerializerRuntimeExtension;
  5. use JMS\Serializer\Twig\SerializerRuntimeHelper;
  6. class SerializerExtensionTest extends \PHPUnit_Framework_TestCase
  7. {
  8. public function testSerialize()
  9. {
  10. $mockSerializer = $this->getMockBuilder('JMS\Serializer\SerializerInterface')->getMock();
  11. $obj = new \stdClass();
  12. $mockSerializer
  13. ->expects($this->once())
  14. ->method('serialize')
  15. ->with($this->equalTo($obj), $this->equalTo('json'));
  16. $serializerExtension = new SerializerExtension($mockSerializer);
  17. $serializerExtension->serialize($obj);
  18. $this->assertEquals('jms_serializer', $serializerExtension->getName());
  19. $filters = $serializerExtension->getFilters();
  20. $this->assertInstanceOf('Twig_SimpleFilter', $filters[0]);
  21. $this->assertSame(array($serializerExtension, 'serialize'), $filters[0]->getCallable());
  22. $this->assertEquals(
  23. array(new \Twig_SimpleFunction('serialization_context', '\JMS\Serializer\SerializationContext::create')),
  24. $serializerExtension->getFunctions()
  25. );
  26. }
  27. public function testRuntimeSerializerHelper()
  28. {
  29. $obj = new \stdClass();
  30. $mockSerializer = $this->getMockBuilder('JMS\Serializer\SerializerInterface')->getMock();
  31. $mockSerializer
  32. ->expects($this->once())
  33. ->method('serialize')
  34. ->with($this->equalTo($obj), $this->equalTo('json'));
  35. $serializerExtension = new SerializerRuntimeHelper($mockSerializer);
  36. $serializerExtension->serialize($obj);
  37. }
  38. public function testRuntimeSerializerExtension()
  39. {
  40. $serializerExtension = new SerializerRuntimeExtension();
  41. $this->assertEquals('jms_serializer', $serializerExtension->getName());
  42. $this->assertEquals(
  43. array(new \Twig_SimpleFilter('serialize', array(SerializerRuntimeHelper::class, 'serialize'))),
  44. $serializerExtension->getFilters()
  45. );
  46. $this->assertEquals(
  47. array(new \Twig_SimpleFunction('serialization_context', '\JMS\Serializer\SerializationContext::create')),
  48. $serializerExtension->getFunctions()
  49. );
  50. }
  51. }