public function BlockFieldSelectionTest::testIsSerializable in Block field 8
Test if BlockFieldSelectionInterface plugins are serializable.
File
- tests/
src/ Kernel/ BlockFieldSelectionTest.php, line 39  
Class
- BlockFieldSelectionTest
 - Tests blockFieldSelectionManager plugins.
 
Namespace
Drupal\Tests\block_field\KernelCode
public function testIsSerializable() {
  // Create a plugin instance of 'categories'.
  $plugin = $this
    ->setUpSelectionInstance('categories', [
    'categories' => [
      'core',
    ],
  ]);
  // Prophesize translations to force service properties.
  $translation = $this
    ->prophesize(TranslationInterface::class);
  $translation
    ->willImplement(\Serializable::class);
  $translation
    ->serialize()
    ->willThrow(\Exception::class);
  $translation_service = $translation
    ->reveal();
  $translation_service->_serviceId = 'string_translation';
  $plugin
    ->setStringTranslation($translation_service);
  // Attempt to serialize and unserialize plugin.
  $string = serialize($plugin);
  $object = unserialize($string);
  // Confirm plugin_id is unchanged.
  $this
    ->assertEquals('categories', $object
    ->getPluginId());
  // Repeat steps with instance of 'blocks'.
  $plugin = $this
    ->setUpSelectionInstance('blocks', [
    'plugin_ids' => [
      'system_powered_by_block',
      'page_title_block',
    ],
  ]);
  $plugin
    ->setStringTranslation($translation_service);
  // Attempt to serialize and unserialize plugin.
  $string = serialize($plugin);
  $object = unserialize($string);
  // Confirm plugin_id is unchanged.
  $this
    ->assertEquals('blocks', $object
    ->getPluginId());
}