3 namespace Drupal\Tests\Core\Cache;
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;
13 * @coversDefaultClass \Drupal\Core\Cache\DatabaseBackendFactory
16 class DatabaseBackendFactoryTest extends UnitTestCase {
19 * @covers ::__construct
21 * @dataProvider getProvider
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)
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());
34 public function getProvider() {
38 DatabaseBackend::DEFAULT_MAX_ROWS,
39 DatabaseBackend::DEFAULT_MAX_ROWS,
41 'default overridden' => [
43 'database_cache_max_rows' => [
50 'default + foo bin overridden' => [
52 'database_cache_max_rows' => [
59 DatabaseBackend::DEFAULT_MAX_ROWS,
61 'default + bar bin overridden' => [
63 'database_cache_max_rows' => [
69 DatabaseBackend::DEFAULT_MAX_ROWS,
72 'default overridden + bar bin overridden' => [
74 'database_cache_max_rows' => [
84 'default + both bins overridden' => [
86 'database_cache_max_rows' => [
96 'default overridden + both bins overridden' => [
98 'database_cache_max_rows' => [