ServiceProviderTest.php

Same filename in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php
  2. 10 core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php
  3. 11.x core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php

Namespace

Drupal\KernelTests\Core\ServiceProvider

File

core/tests/Drupal/KernelTests/Core/ServiceProvider/ServiceProviderTest.php

View source
<?php

namespace Drupal\KernelTests\Core\ServiceProvider;

use Drupal\KernelTests\KernelTestBase;

/**
 * Tests service provider registration to the DIC.
 *
 * @group ServiceProvider
 */
class ServiceProviderTest extends KernelTestBase {
    
    /**
     * Modules to enable.
     *
     * @var array
     */
    public static $modules = [
        'file',
        'service_provider_test',
        'system',
    ];
    
    /**
     * Tests that services provided by module service providers get registered to the DIC.
     */
    public function testServiceProviderRegistration() {
        $definition = $this->container
            ->getDefinition('file.usage');
        $this->assertTrue($definition->getClass() == 'Drupal\\service_provider_test\\TestFileUsage', 'Class has been changed');
        $this->assertTrue(\Drupal::hasService('service_provider_test_class'), 'The service_provider_test_class service has been registered to the DIC');
    }
    
    /**
     * Tests that the DIC keeps up with module enable/disable in the same request.
     */
    public function testServiceProviderRegistrationDynamic() {
        // Uninstall the module and ensure the service provider's service is not registered.
        \Drupal::service('module_installer')->uninstall([
            'service_provider_test',
        ]);
        $this->assertFalse(\Drupal::hasService('service_provider_test_class'), 'The service_provider_test_class service does not exist in the DIC.');
        // Install the module and ensure the service provider's service is registered.
        \Drupal::service('module_installer')->install([
            'service_provider_test',
        ]);
        $this->assertTrue(\Drupal::hasService('service_provider_test_class'), 'The service_provider_test_class service exists in the DIC.');
    }

}

Classes

Title Deprecated Summary
ServiceProviderTest Tests service provider registration to the DIC.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.