From efe11919dc46828913d301716f23a257be91673b Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Sun, 7 Apr 2024 21:58:51 +0100
Subject: [PATCH] Issue #3439039 by mondrake: Change
 QueryFactoryTest:providerTestGetKeys to static

---
 .../Config/Entity/Query/QueryFactoryTest.php  | 61 ++++++++++---------
 1 file changed, 33 insertions(+), 28 deletions(-)

diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php
index 9bab605732fc..f46f41db5137 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php
@@ -7,6 +7,7 @@
 use Drupal\Core\Config\Config;
 use Drupal\Core\Config\Entity\Query\QueryFactory;
 use Drupal\Tests\UnitTestCase;
+use PHPUnit\Framework\MockObject\MockObject;
 
 /**
  * @coversDefaultClass \Drupal\Core\Config\Entity\Query\QueryFactory
@@ -20,7 +21,11 @@ class QueryFactoryTest extends UnitTestCase {
    *
    * @dataProvider providerTestGetKeys
    */
-  public function testGetKeys(array $expected, $key, Config $config) {
+  public function testGetKeys(array $expected, string $key, array $sets): void {
+    $config = $this->getConfigObject('test');
+    foreach ($sets as $set) {
+      $config->set(...$set);
+    }
     $config_factory = $this->createMock('Drupal\Core\Config\ConfigFactoryInterface');
     $key_value_factory = $this->createMock('Drupal\Core\KeyValueStore\KeyValueFactoryInterface');
     $config_manager = $this->createMock('Drupal\Core\Config\ConfigManagerInterface');
@@ -32,68 +37,68 @@ public function testGetKeys(array $expected, $key, Config $config) {
     $this->assertEquals($expected, $actual);
   }
 
-  public function providerTestGetKeys() {
-    $tests = [];
-
-    $tests[] = [
+  public static function providerTestGetKeys(): \Generator {
+    yield [
       ['uuid:abc'],
       'uuid',
-      $this->getConfigObject('test')->set('uuid', 'abc'),
+      [['uuid', 'abc']],
     ];
 
     // Tests a lookup being set to a top level key when sub-keys exist.
-    $tests[] = [
+    yield [
       [],
       'uuid',
-      $this->getConfigObject('test')->set('uuid.blah', 'abc'),
+      [['uuid.blah', 'abc']],
     ];
 
     // Tests a non existent key.
-    $tests[] = [
+    yield [
       [],
       'uuid',
-      $this->getConfigObject('test'),
+      [],
     ];
 
     // Tests a non existent sub key.
-    $tests[] = [
+    yield [
       [],
       'uuid.blah',
-      $this->getConfigObject('test')->set('uuid', 'abc'),
+      [['uuid', 'abc']],
     ];
 
     // Tests an existent sub key.
-    $tests[] = [
+    yield [
       ['uuid.blah:abc'],
       'uuid.blah',
-      $this->getConfigObject('test')->set('uuid.blah', 'abc'),
+      [['uuid.blah', 'abc']],
     ];
 
     // One wildcard.
-    $tests[] = [
+    yield [
       ['test.*.value:a', 'test.*.value:b'],
       'test.*.value',
-      $this->getConfigObject('test')->set('test.a.value', 'a')->set('test.b.value', 'b'),
+      [['test.a.value', 'a'], ['test.b.value', 'b']],
     ];
 
     // Three wildcards.
-    $tests[] = [
+    yield [
       ['test.*.sub2.*.sub4.*.value:aaa', 'test.*.sub2.*.sub4.*.value:aab', 'test.*.sub2.*.sub4.*.value:bab'],
       'test.*.sub2.*.sub4.*.value',
-      $this->getConfigObject('test')
-        ->set('test.a.sub2.a.sub4.a.value', 'aaa')
-        ->set('test.a.sub2.a.sub4.b.value', 'aab')
-        ->set('test.b.sub2.a.sub4.b.value', 'bab'),
+      [
+        ['test.a.sub2.a.sub4.a.value', 'aaa'],
+        ['test.a.sub2.a.sub4.b.value', 'aab'],
+        ['test.b.sub2.a.sub4.b.value', 'bab'],
+      ],
     ];
 
     // Three wildcards in a row.
-    $tests[] = [
+    yield [
       ['test.*.*.*.value:abc', 'test.*.*.*.value:abd'],
       'test.*.*.*.value',
-      $this->getConfigObject('test')->set('test.a.b.c.value', 'abc')->set('test.a.b.d.value', 'abd'),
+      [
+        ['test.a.b.c.value', 'abc'],
+        ['test.a.b.d.value', 'abd'],
+      ],
     ];
-
-    return $tests;
   }
 
   /**
@@ -122,11 +127,11 @@ public function testGetKeysWildCardEnd() {
    * @param string $name
    *   The config name.
    *
-   * @return \Drupal\Core\Config\Config|\PHPUnit\Framework\MockObject\MockObject
+   * @return \Drupal\Core\Config\Config&\PHPUnit\Framework\MockObject\MockObject
    *   The test configuration object.
    */
-  protected function getConfigObject($name) {
-    $config = $this->getMockBuilder('Drupal\Core\Config\Config')
+  protected function getConfigObject(string $name): Config&MockObject {
+    $config = $this->getMockBuilder(Config::class)
       ->disableOriginalConstructor()
       ->onlyMethods(['save', 'delete'])
       ->getMock();
-- 
GitLab