diff options
Diffstat (limited to 'tests/CacheImplementationTest.php')
-rw-r--r-- | tests/CacheImplementationTest.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/CacheImplementationTest.php b/tests/CacheImplementationTest.php new file mode 100644 index 00000000..e6ed352b --- /dev/null +++ b/tests/CacheImplementationTest.php @@ -0,0 +1,36 @@ +<?php + +namespace RssBridge\Tests; + +use CacheInterface; +use PHPUnit\Framework\TestCase; + +class CacheImplementationTest extends TestCase +{ + public function getCacheClassNames() + { + $caches = []; + foreach (glob(PATH_LIB_CACHES . '*.php') as $path) { + $caches[] = [basename($path, '.php')]; + } + return $caches; + } + + /** + * @dataProvider getCacheClassNames + */ + public function testClassName($path) + { + $this->assertTrue($path === ucfirst($path), 'class name must start with uppercase character'); + $this->assertEquals(0, substr_count($path, ' '), 'class name must not contain spaces'); + $this->assertStringEndsWith('Cache', $path, 'class name must end with "Cache"'); + } + + /** + * @dataProvider getCacheClassNames + */ + public function testClassType($path) + { + $this->assertTrue(is_subclass_of($path, CacheInterface::class), 'class must be subclass of CacheInterface'); + } +} |