depcalc-8.x-1.x-dev/tests/src/Kernel/DepcalcRequirementsTest.php

tests/src/Kernel/DepcalcRequirementsTest.php
<?php

use Drupal\Core\Site\Settings;
use Drupal\depcalc\DepcalcRequirements;
use Drupal\KernelTests\KernelTestBase;

class DepcalcRequirementsTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'depcalc',
    'system',
  ];

  /**
   * The DepcalcRequirements instance.
   *
   * @var \Drupal\depcalc\DepcalcRequirements
   */
  protected DepcalcRequirements $depcalcRequirements;

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $this->installSchema('system', ['sequences']);
  }

  /**
   * Tests cache configuration requirements for depcalc module
   *
   * @dataProvider requirementsDataProvider
   */
  public function testDepcalcRequirements(array $settings_data, int $expected_severity, string $expected_value): void {
    $settings = new Settings($settings_data);
    $this->depcalcRequirements = new DepcalcRequirements($settings);

    $requirements = $this->depcalcRequirements->getRequirements();

    $this->assertArrayHasKey('depcalc_cache_config', $requirements);
    $requirement = $requirements['depcalc_cache_config'];

    $this->assertEquals($expected_severity, $requirement['severity']);
    $this->assertEquals($expected_value, (string) $requirement['value']);
    $this->assertEquals('Depcalc Cache Configuration', (string) $requirement['title']);
  }

  /**
   * Data provider for depcalc requirements scenarios.
   *
   * @return array
   *   Test data with settings, expected severity and value.
   */
  public static function requirementsDataProvider(): array {
    return [
      'depcalc_ok_unlimited' => [
        [
          'database_cache_max_rows' => [
            'bins' => [
              'depcalc' => -1,
            ],
          ],
        ],
        0,
        'Unlimited cache size',
      ],
      'depcalc_warning_adequate_size' => [
        [
          'database_cache_max_rows' => [
            'bins' => [
              'depcalc' => 7000,
            ],
          ],
        ],
        1,
        'Cache bin size: 7000',
      ],
      'depcalc_error_too_small' => [
        [
          'database_cache_max_rows' => [
            'bins' => [
              'depcalc' => 2000,
            ],
          ],
        ],
        2,
        'Cache bin size too small: 2000',
      ],
      'default_error_default_too_low' => [
        [
          'database_cache_max_rows' => [
            'default' => 3000,
          ],
        ],
        2,
        'Cache bin size not configured',
      ],
      'default_warning_adequate' => [
        [
          'database_cache_max_rows' => [
            'default' => 10000,
          ],
        ],
        1,
        'Depcalc cache bin not specifically configured',
      ],
      'error_no_settings' => [
        [],
        2,
        'Cache bin size not configured',
      ],
    ];
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc