Files
shopPRO/tests/Unit/admin/Controllers/SettingsControllerTest.php
Jacek Pyziak 8e97413361 ver. 0.282: Banners frontend migration, Cache cleanup, Shared\Cache namespace
- Banners frontend: front\Views\Banners (new), BannerRepository +2 frontend methods,
  front\view\Site przepięty, usunięte front\factory\Banners i front\view\Banners
- Cache cleanup: eliminacja legacy class.Cache.php (file-based cache),
  13 metod front\factory przepiętych z \Cache::fetch/store na CacheHandler
- Shared\Cache namespace: CacheHandler i RedisConnection przeniesione do Shared\Cache\,
  60 odwołań CacheHandler i 12 odwołań RedisConnection przepiętych,
  usunięte backward-compat wrappery class.CacheHandler.php i class.RedisConnection.php
- Naprawione rozbieżności kluczy cache (random_products, category_name)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 21:25:50 +01:00

70 lines
2.3 KiB
PHP

<?php
namespace Tests\Unit\admin\Controllers;
use PHPUnit\Framework\TestCase;
use admin\Controllers\SettingsController;
use Domain\Languages\LanguagesRepository;
use Domain\Settings\SettingsRepository;
/**
* Testy dla SettingsController
*
* Kontroler używa SettingsRepository (DI).
* Cache czyszczony bezpośrednio przez \S::delete_dir() i \Shared\Cache\RedisConnection.
*/
class SettingsControllerTest extends TestCase
{
private $mockSettingsRepository;
private $mockLanguagesRepository;
private $controller;
protected function setUp(): void
{
$this->mockSettingsRepository = $this->createMock(SettingsRepository::class);
$this->mockLanguagesRepository = $this->createMock(LanguagesRepository::class);
$this->controller = new SettingsController($this->mockSettingsRepository, $this->mockLanguagesRepository);
}
public function testConstructorAcceptsRepository(): void
{
$controller = new SettingsController($this->mockSettingsRepository, $this->mockLanguagesRepository);
$this->assertInstanceOf(SettingsController::class, $controller);
}
public function testHasClearCacheMethod(): void
{
$this->assertTrue(method_exists($this->controller, 'clearCache'));
}
public function testHasClearCacheAjaxMethod(): void
{
$this->assertTrue(method_exists($this->controller, 'clearCacheAjax'));
}
public function testHasSaveMethod(): void
{
$this->assertTrue(method_exists($this->controller, 'save'));
}
public function testHasViewMethod(): void
{
$this->assertTrue(method_exists($this->controller, 'view'));
}
public function testIsNotAbstract(): void
{
$reflection = new \ReflectionClass($this->controller);
$this->assertFalse($reflection->isAbstract());
}
public function testActionMethodReturnTypes(): void
{
$reflection = new \ReflectionClass($this->controller);
$this->assertEquals('void', (string)$reflection->getMethod('clearCache')->getReturnType());
$this->assertEquals('void', (string)$reflection->getMethod('clearCacheAjax')->getReturnType());
$this->assertEquals('void', (string)$reflection->getMethod('save')->getReturnType());
$this->assertEquals('string', (string)$reflection->getMethod('view')->getReturnType());
}
}