TplBlock/vendor/jms/serializer/tests/Handler/ArrayCollectionHandlerTest.php
2018-03-26 21:57:35 +02:00

53 lines
1.9 KiB
PHP

<?php
namespace JMS\Serializer\Tests\Handler;
use Doctrine\Common\Collections\ArrayCollection;
use JMS\Serializer\Handler\ArrayCollectionHandler;
use JMS\Serializer\Metadata\ClassMetadata;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\Tests\Fixtures\ExclusionStrategy\AlwaysExcludeExclusionStrategy;
use JMS\Serializer\VisitorInterface;
use Metadata\MetadataFactoryInterface;
class ArrayCollectionHandlerTest extends \PHPUnit_Framework_TestCase
{
public function testSerializeArray()
{
$handler = new ArrayCollectionHandler();
$visitor = $this->getMockBuilder(VisitorInterface::class)->getMock();
$visitor->method('visitArray')->with(['foo'])->willReturn(['foo']);
$context = $this->getMockBuilder(SerializationContext::class)->getMock();
$type = ['name' => 'ArrayCollection', 'params' => []];
$collection = new ArrayCollection(['foo']);
$handler->serializeCollection($visitor, $collection, $type, $context);
}
public function testSerializeArraySkipByExclusionStrategy()
{
$handler = new ArrayCollectionHandler(false);
$visitor = $this->getMockBuilder(VisitorInterface::class)->getMock();
$visitor->method('visitArray')->with([])->willReturn([]);
$context = $this->getMockBuilder(SerializationContext::class)->getMock();
$factoryMock = $this->getMockBuilder(MetadataFactoryInterface::class)->getMock();
$factoryMock->method('getMetadataForClass')->willReturn(new ClassMetadata(ArrayCollection::class));
$context->method('getExclusionStrategy')->willReturn(new AlwaysExcludeExclusionStrategy());
$context->method('getMetadataFactory')->willReturn($factoryMock);
$type = ['name' => 'ArrayCollection', 'params' => []];
$collection = new ArrayCollection(['foo']);
$handler->serializeCollection($visitor, $collection, $type, $context);
}
}