53 lines
1.9 KiB
PHP
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);
|
|
}
|
|
}
|