class ContentEntityNormalizerTest in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/serialization/tests/src/Unit/Normalizer/ContentEntityNormalizerTest.php \Drupal\Tests\serialization\Unit\Normalizer\ContentEntityNormalizerTest
@coversDefaultClass \Drupal\serialization\Normalizer\ContentEntityNormalizer @group serialization
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \Drupal\Tests\PHPUnit_Framework_TestCase
- class \Drupal\Tests\serialization\Unit\Normalizer\ContentEntityNormalizerTest
Expanded class hierarchy of ContentEntityNormalizerTest
File
- core/
modules/ serialization/ tests/ src/ Unit/ Normalizer/ ContentEntityNormalizerTest.php, line 17 - Contains \Drupal\Tests\serialization\Unit\Normalizer\ContentEntityNormalizerTest.
Namespace
Drupal\Tests\serialization\Unit\NormalizerView source
class ContentEntityNormalizerTest extends UnitTestCase {
/**
* The mock entity manager.
*
* @var \Drupal\Core\Entity\EntityManagerInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $entityManager;
/**
* The mock serializer.
*
* @var \Symfony\Component\Serializer\SerializerInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected $serializer;
/**
* The normalizer under test.
*
* @var \Drupal\serialization\Normalizer\ContentEntityNormalizer
*/
protected $contentEntityNormalizer;
/**
* {@inheritdoc}
*/
protected function setUp() {
$this->entityManager = $this
->getMock('Drupal\\Core\\Entity\\EntityManagerInterface');
$this->contentEntityNormalizer = new ContentEntityNormalizer($this->entityManager);
$this->serializer = $this
->getMockBuilder('Symfony\\Component\\Serializer\\Serializer')
->disableOriginalConstructor()
->setMethods(array(
'normalize',
))
->getMock();
$this->contentEntityNormalizer
->setSerializer($this->serializer);
}
/**
* @covers ::supportsNormalization
*/
public function testSupportsNormalization() {
$content_mock = $this
->getMock('Drupal\\Core\\Entity\\ContentEntityInterface');
$config_mock = $this
->getMock('Drupal\\Core\\Entity\\ConfigEntityInterface');
$this
->assertTrue($this->contentEntityNormalizer
->supportsNormalization($content_mock));
$this
->assertFalse($this->contentEntityNormalizer
->supportsNormalization($config_mock));
}
/**
* Tests the normalize() method.
*
* @covers ::normalize
*/
public function testNormalize() {
$this->serializer
->expects($this
->any())
->method('normalize')
->with($this
->containsOnlyInstancesOf('Drupal\\Core\\Field\\FieldItemListInterface'), 'test_format', [
'account' => NULL,
])
->will($this
->returnValue('test'));
$definitions = array(
'field_1' => $this
->createMockFieldListItem(),
'field_2' => $this
->createMockFieldListItem(FALSE),
);
$content_entity_mock = $this
->createMockForContentEntity($definitions);
$normalized = $this->contentEntityNormalizer
->normalize($content_entity_mock, 'test_format');
$this
->assertArrayHasKey('field_1', $normalized);
$this
->assertEquals('test', $normalized['field_1']);
$this
->assertArrayNotHasKey('field_2', $normalized);
}
/**
* Tests the normalize() method with account context passed.
*
* @covers ::normalize
*/
public function testNormalizeWithAccountContext() {
$mock_account = $this
->getMock('Drupal\\Core\\Session\\AccountInterface');
$context = [
'account' => $mock_account,
];
$this->serializer
->expects($this
->any())
->method('normalize')
->with($this
->containsOnlyInstancesOf('Drupal\\Core\\Field\\FieldItemListInterface'), 'test_format', $context)
->will($this
->returnValue('test'));
// The mock account should get passed directly into the access() method on
// field items from $context['account'].
$definitions = array(
'field_1' => $this
->createMockFieldListItem(TRUE, $mock_account),
'field_2' => $this
->createMockFieldListItem(FALSE, $mock_account),
);
$content_entity_mock = $this
->createMockForContentEntity($definitions);
$normalized = $this->contentEntityNormalizer
->normalize($content_entity_mock, 'test_format', $context);
$this
->assertArrayHasKey('field_1', $normalized);
$this
->assertEquals('test', $normalized['field_1']);
$this
->assertArrayNotHasKey('field_2', $normalized);
}
/**
* Creates a mock content entity.
*
* @param $definitions
*
* @return \PHPUnit_Framework_MockObject_MockObject
*/
public function createMockForContentEntity($definitions) {
$content_entity_mock = $this
->getMockBuilder('Drupal\\Core\\Entity\\ContentEntityBase')
->disableOriginalConstructor()
->setMethods(array(
'getFields',
))
->getMockForAbstractClass();
$content_entity_mock
->expects($this
->once())
->method('getFields')
->will($this
->returnValue($definitions));
return $content_entity_mock;
}
/**
* Creates a mock field list item.
*
* @param bool $access
*
* @return \Drupal\Core\Field\FieldItemListInterface|\PHPUnit_Framework_MockObject_MockObject
*/
protected function createMockFieldListItem($access = TRUE, $user_context = NULL) {
$mock = $this
->getMock('Drupal\\Core\\Field\\FieldItemListInterface');
$mock
->expects($this
->once())
->method('access')
->with('view', $user_context)
->will($this
->returnValue($access));
return $mock;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ContentEntityNormalizerTest:: |
protected | property | The normalizer under test. | |
ContentEntityNormalizerTest:: |
protected | property | The mock entity manager. | |
ContentEntityNormalizerTest:: |
protected | property | The mock serializer. | |
ContentEntityNormalizerTest:: |
protected | function | Creates a mock field list item. | |
ContentEntityNormalizerTest:: |
public | function | Creates a mock content entity. | |
ContentEntityNormalizerTest:: |
protected | function |
Overrides UnitTestCase:: |
|
ContentEntityNormalizerTest:: |
public | function | Tests the normalize() method. | |
ContentEntityNormalizerTest:: |
public | function | Tests the normalize() method with account context passed. | |
ContentEntityNormalizerTest:: |
public | function | @covers ::supportsNormalization | |
UnitTestCase:: |
protected | property | The random generator. | |
UnitTestCase:: |
protected | property | The app root. | |
UnitTestCase:: |
protected | function | Asserts if two arrays are equal by sorting them first. | |
UnitTestCase:: |
protected | function | Mocks a block with a block plugin. | |
UnitTestCase:: |
protected | function | Returns a stub class resolver. | |
UnitTestCase:: |
public | function | Returns a stub config factory that behaves according to the passed in array. | |
UnitTestCase:: |
public | function | Returns a stub config storage that returns the supplied configuration. | |
UnitTestCase:: |
protected | function | Sets up a container with a cache tags invalidator. | |
UnitTestCase:: |
protected | function | Gets the random generator for the utility methods. | |
UnitTestCase:: |
public | function | Returns a stub translation manager that just returns the passed string. | |
UnitTestCase:: |
public | function | Generates a unique random string containing letters and numbers. |