public function FixGetConfigFactoryStubTrait::getConfigFactoryStub in Purge 8.3
Overrides ::getConfigFactoryStub().
@todo Lines 52-57 have been added in order to make mutable stub calls work in unit tests, e.g.: ->getEditable()->set()->save(). This hasn't yet been reported to drupal.org, feel free!
See also
\Drupal\Tests\UnitTestCase::getConfigFactoryStub
9 calls to FixGetConfigFactoryStubTrait::getConfigFactoryStub()
- LoggerServiceTest::testDeleteChannel in tests/src/ Unit/ Logger/ LoggerServiceTest.php 
- @covers ::deleteChannel
- LoggerServiceTest::testDeleteChannels in tests/src/ Unit/ Logger/ LoggerServiceTest.php 
- @covers ::deleteChannels
- LoggerServiceTest::testDestruct in tests/src/ Unit/ Logger/ LoggerServiceTest.php 
- @covers ::destruct
- LoggerServiceTest::testGet in tests/src/ Unit/ Logger/ LoggerServiceTest.php 
- @covers ::get
- LoggerServiceTest::testGetChannels in tests/src/ Unit/ Logger/ LoggerServiceTest.php 
- @covers ::getChannels
File
- tests/src/ Unit/ FixGetConfigFactoryStubTrait.php, line 22 
Class
- FixGetConfigFactoryStubTrait
- Overrides ::getConfigFactoryStub().
Namespace
Drupal\Tests\purge\UnitCode
public function getConfigFactoryStub(array $configs = []) {
  $config_get_map = [];
  $config_editable_map = [];
  // Construct the desired configuration object stubs, each with its own
  // desired return map.
  foreach ($configs as $config_name => $config_values) {
    $map = [];
    foreach ($config_values as $key => $value) {
      $map[] = [
        $key,
        $value,
      ];
    }
    // Also allow to pass in no argument.
    $map[] = [
      '',
      $config_values,
    ];
    $immutable_config_object = $this
      ->getMockBuilder('Drupal\\Core\\Config\\ImmutableConfig')
      ->disableOriginalConstructor()
      ->getMock();
    $immutable_config_object
      ->expects($this
      ->any())
      ->method('get')
      ->will($this
      ->returnValueMap($map));
    $config_get_map[] = [
      $config_name,
      $immutable_config_object,
    ];
    $mutable_config_object = $this
      ->getMockBuilder('Drupal\\Core\\Config\\Config')
      ->disableOriginalConstructor()
      ->getMock();
    $mutable_config_object
      ->expects($this
      ->any())
      ->method('get')
      ->will($this
      ->returnValueMap($map));
    $mutable_config_object
      ->expects($this
      ->any())
      ->method('set')
      ->will($this
      ->returnValue($mutable_config_object));
    $mutable_config_object
      ->expects($this
      ->any())
      ->method('save')
      ->will($this
      ->returnValue($mutable_config_object));
    $config_editable_map[] = [
      $config_name,
      $mutable_config_object,
    ];
  }
  // Construct a config factory with the array of configuration object stubs
  // as its return map.
  $config_factory = $this
    ->createMock('Drupal\\Core\\Config\\ConfigFactoryInterface');
  $config_factory
    ->expects($this
    ->any())
    ->method('get')
    ->will($this
    ->returnValueMap($config_get_map));
  $config_factory
    ->expects($this
    ->any())
    ->method('getEditable')
    ->will($this
    ->returnValueMap($config_editable_map));
  return $config_factory;
}