SerializerTest.php
Same filename in this branch
Same filename in other branches
- 9 core/modules/jsonapi/tests/src/Kernel/Serializer/SerializerTest.php
- 9 core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php
- 8.9.x core/modules/jsonapi/tests/src/Kernel/Serializer/SerializerTest.php
- 8.9.x core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php
- 10 core/modules/jsonapi/tests/src/Kernel/Serializer/SerializerTest.php
- 10 core/modules/rest/tests/src/Unit/Plugin/views/style/SerializerTest.php
Namespace
Drupal\Tests\rest\Unit\Plugin\views\styleFile
-
core/
modules/ rest/ tests/ src/ Unit/ Plugin/ views/ style/ SerializerTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\rest\Unit\Plugin\views\style;
use Drupal\rest\Plugin\views\display\RestExport;
use Drupal\rest\Plugin\views\style\Serializer;
use Drupal\Tests\UnitTestCase;
use Drupal\views\ViewExecutable;
use Prophecy\Argument;
use Symfony\Component\Serializer\SerializerInterface;
/**
* @coversDefaultClass \Drupal\rest\Plugin\views\style\Serializer
* @group rest
*/
class SerializerTest extends UnitTestCase {
/**
* The View instance.
*
* @var \Drupal\views\ViewExecutable|\PHPUnit\Framework\MockObject\MockObject
*/
protected $view;
/**
* The RestExport display handler.
*
* @var \Drupal\rest\Plugin\views\display\RestExport|\PHPUnit\Framework\MockObject\MockObject
*/
protected $displayHandler;
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this->view = $this->getMockBuilder(ViewExecutable::class)
->disableOriginalConstructor()
->getMock();
// Make the view result empty so we don't have to mock the row plugin render
// call.
$this->view->result = [];
$this->displayHandler = $this->getMockBuilder(RestExport::class)
->disableOriginalConstructor()
->getMock();
$this->displayHandler
->expects($this->any())
->method('getContentType')
->willReturn('json');
}
/**
* Tests that the symfony serializer receives style plugin from the render() method.
*
* @covers ::render
*/
public function testSerializerReceivesOptions() : void {
$mock_serializer = $this->prophesize(SerializerInterface::class);
// This is the main expectation of the test. We want to make sure the
// serializer options are passed to the SerializerInterface object.
$mock_serializer->serialize([], 'json', Argument::that(function ($argument) {
return isset($argument['views_style_plugin']) && $argument['views_style_plugin'] instanceof Serializer;
}))
->willReturn('')
->shouldBeCalled();
$view_serializer_style = new Serializer([], 'dummy_serializer', [], $mock_serializer->reveal(), [
'json',
'xml',
], [
'json' => 'serialization',
'xml' => 'serialization',
]);
$view_serializer_style->options = [
'formats' => [
'xml',
'json',
],
];
$view_serializer_style->view = $this->view;
$view_serializer_style->displayHandler = $this->displayHandler;
$view_serializer_style->render();
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
SerializerTest | @coversDefaultClass \Drupal\rest\Plugin\views\style\Serializer @group rest |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.