mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-12-21 03:37:19 +03:00
44e8007d9c
We cannot yet switch to namespaces for RSS-Bridge itself but for tests we are not limited by BC. It does not actually do anything since PHPUnit will search for the test files without the help of the autoloader but it still makes the directory cleaner.
43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace RssBridge\Tests\Caches;
|
|
|
|
use CacheInterface;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class CacheImplementationTest extends TestCase {
|
|
private $class;
|
|
|
|
/**
|
|
* @dataProvider dataCachesProvider
|
|
*/
|
|
public function testClassName($path) {
|
|
$this->setCache($path);
|
|
$this->assertTrue($this->class === ucfirst($this->class), 'class name must start with uppercase character');
|
|
$this->assertEquals(0, substr_count($this->class, ' '), 'class name must not contain spaces');
|
|
$this->assertStringEndsWith('Cache', $this->class, 'class name must end with "Cache"');
|
|
}
|
|
|
|
/**
|
|
* @dataProvider dataCachesProvider
|
|
*/
|
|
public function testClassType($path) {
|
|
$this->setCache($path);
|
|
$this->assertTrue(is_subclass_of($this->class, CacheInterface::class), 'class must be subclass of CacheInterface');
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
public function dataCachesProvider() {
|
|
$caches = array();
|
|
foreach (glob(PATH_LIB_CACHES . '*.php') as $path) {
|
|
$caches[basename($path, '.php')] = array($path);
|
|
}
|
|
return $caches;
|
|
}
|
|
|
|
private function setCache($path) {
|
|
$this->class = '\\' . basename($path, '.php');
|
|
$this->assertTrue(class_exists($this->class), 'class ' . $this->class . ' doesn\'t exist');
|
|
}
|
|
}
|