Security update for Core, with self-updated composer
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Cache / DatabaseBackendFactoryTest.php
1 <?php
2
3 namespace Drupal\Tests\Core\Cache;
4
5 use Drupal\Core\Cache\CacheTagsChecksumInterface;
6 use Drupal\Core\Cache\DatabaseBackend;
7 use Drupal\Core\Cache\DatabaseBackendFactory;
8 use Drupal\Core\Database\Connection;
9 use Drupal\Core\Site\Settings;
10 use Drupal\Tests\UnitTestCase;
11
12 /**
13  * @coversDefaultClass \Drupal\Core\Cache\DatabaseBackendFactory
14  * @group Cache
15  */
16 class DatabaseBackendFactoryTest extends UnitTestCase {
17
18   /**
19    * @covers ::__construct
20    * @covers ::get
21    * @dataProvider getProvider
22    */
23   public function testGet(array $settings, $expected_max_rows_foo, $expected_max_rows_bar) {
24     $database_backend_factory = new DatabaseBackendFactory(
25       $this->prophesize(Connection::class)->reveal(),
26       $this->prophesize(CacheTagsChecksumInterface::class)->reveal(),
27       new Settings($settings)
28     );
29
30     $this->assertSame($expected_max_rows_foo, $database_backend_factory->get('foo')->getMaxRows());
31     $this->assertSame($expected_max_rows_bar, $database_backend_factory->get('bar')->getMaxRows());
32   }
33
34   public function getProvider() {
35     return [
36       'default' => [
37         [],
38         DatabaseBackend::DEFAULT_MAX_ROWS,
39         DatabaseBackend::DEFAULT_MAX_ROWS,
40       ],
41       'default overridden' => [
42         [
43           'database_cache_max_rows' => [
44             'default' => 99,
45           ],
46         ],
47         99,
48         99,
49       ],
50       'default + foo bin overridden' => [
51         [
52           'database_cache_max_rows' => [
53             'bins' => [
54               'foo' => 13,
55             ],
56           ],
57         ],
58         13,
59         DatabaseBackend::DEFAULT_MAX_ROWS,
60       ],
61       'default + bar bin overridden' => [
62         [
63           'database_cache_max_rows' => [
64             'bins' => [
65               'bar' => 13,
66             ],
67           ],
68         ],
69         DatabaseBackend::DEFAULT_MAX_ROWS,
70         13,
71       ],
72       'default overridden + bar bin overridden' => [
73         [
74           'database_cache_max_rows' => [
75             'default' => 99,
76             'bins' => [
77               'bar' => 13,
78             ],
79           ],
80         ],
81         99,
82         13,
83       ],
84       'default + both bins overridden' => [
85         [
86           'database_cache_max_rows' => [
87             'bins' => [
88               'foo' => 13,
89               'bar' => 31,
90             ],
91           ],
92         ],
93         13,
94         31,
95       ],
96       'default overridden + both bins overridden' => [
97         [
98           'database_cache_max_rows' => [
99             'default' => 99,
100             'bins' => [
101               'foo' => 13,
102               'bar' => 31,
103             ],
104           ],
105         ],
106         13,
107         31,
108       ],
109     ];
110   }
111
112 }