5 * Contains \Drupal\Tests\Core\DependencyInjection\DependencySerializationTest.
8 namespace Drupal\Tests\Core\DependencyInjection;
10 use Drupal\Core\DependencyInjection\Container;
11 use Drupal\Core\DependencyInjection\DependencySerializationTrait;
12 use Drupal\Tests\UnitTestCase;
13 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
14 use Symfony\Component\DependencyInjection\ContainerInterface;
17 * @coversDefaultClass \Drupal\Core\DependencyInjection\DependencySerializationTrait
18 * @group DependencyInjection
20 class DependencySerializationTest extends UnitTestCase {
26 public function testSerialization() {
27 // Create a pseudo service and dependency injected object.
28 $service = new \stdClass();
29 $service->_serviceId = 'test_service';
30 $container = new Container();
31 $container->set('test_service', $service);
32 $container->set('service_container', $container);
33 \Drupal::setContainer($container);
35 $dependencySerialization = new DependencySerializationTestDummy($service);
36 $dependencySerialization->setContainer($container);
38 $string = serialize($dependencySerialization);
39 /** @var \Drupal\Tests\Core\DependencyInjection\DependencySerializationTestDummy $dependencySerialization */
40 $dependencySerialization = unserialize($string);
42 $this->assertSame($service, $dependencySerialization->service);
43 $this->assertSame($container, $dependencySerialization->container);
44 $this->assertEmpty($dependencySerialization->getServiceIds());
50 * Defines a test class which has a single service as dependency.
52 class DependencySerializationTestDummy implements ContainerAwareInterface {
54 use DependencySerializationTrait;
66 * @var \Symfony\Component\DependencyInjection\ContainerInterface
71 * Constructs a new TestClass object.
73 * @param \stdClass $service
76 public function __construct(\stdClass $service) {
77 $this->service = $service;
83 public function setContainer(ContainerInterface $container = NULL) {
84 $this->container = $container;
88 * Gets the stored service IDs.
90 public function getServiceIds() {
91 return $this->_serviceIds;