From: Art4 Date: Sun, 15 Dec 2024 21:06:49 +0000 (+0000) Subject: Rename CacheTest to CacheTestCase X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=0826cb50bd5765301e699d3f664f12e445d3aa45;p=friendica.git Rename CacheTest to CacheTestCase --- diff --git a/tests/CacheTestCase.php b/tests/CacheTestCase.php new file mode 100644 index 0000000000..c3db14b274 --- /dev/null +++ b/tests/CacheTestCase.php @@ -0,0 +1,243 @@ + ['data' => 'foobar'], + 'integer' => ['data' => 1], + 'boolTrue' => ['data' => true], + 'boolFalse' => ['data' => false], + 'float' => ['data' => 4.6634234], + 'array' => ['data' => ['1', '2', '3', '4', '5']], + 'object' => ['data' => new PidFile()], + 'null' => ['data' => null], + ]; + } + + /** + * Dataset for simple value sets/gets + * + * @return array + */ + public function dataSimple() + { + return [ + 'string' => [ + 'value1' => 'foobar', + 'value2' => 'ipsum lorum', + 'value3' => 'test', + 'value4' => 'lasttest', + ], + ]; + } + + abstract protected function getInstance(); + + protected function setUp(): void + { + parent::setUp(); + + $this->instance = $this->getInstance(); + + $this->instance->clear(false); + } + + /** + * @small + * @dataProvider dataSimple + * + * @param mixed $value1 a first + * @param mixed $value2 a second + */ + public function testSimple($value1, $value2) + { + self::assertNull($this->instance->get('value1')); + + $this->instance->set('value1', $value1); + $received = $this->instance->get('value1'); + self::assertEquals($value1, $received, 'Value received from cache not equal to the original'); + + $this->instance->set('value1', $value2); + $received = $this->instance->get('value1'); + self::assertEquals($value2, $received, 'Value not overwritten by second set'); + + $this->instance->set('value2', $value1); + $received2 = $this->instance->get('value2'); + self::assertEquals($value2, $received, 'Value changed while setting other variable'); + self::assertEquals($value1, $received2, 'Second value not equal to original'); + + self::assertNull($this->instance->get('not_set'), 'Unset value not equal to null'); + + self::assertTrue($this->instance->delete('value1')); + self::assertNull($this->instance->get('value1')); + } + + /** + * @small + * @dataProvider dataSimple + * + * @param mixed $value1 a first + * @param mixed $value2 a second + * @param mixed $value3 a third + * @param mixed $value4 a fourth + */ + public function testClear($value1, $value2, $value3, $value4) + { + $this->instance->set('1_value1', $value1); + $this->instance->set('1_value2', $value2); + $this->instance->set('2_value1', $value3); + $this->instance->set('3_value1', $value4); + + self::assertEquals([ + '1_value1' => $value1, + '1_value2' => $value2, + '2_value1' => $value3, + '3_value1' => $value4, + ], [ + '1_value1' => $this->instance->get('1_value1'), + '1_value2' => $this->instance->get('1_value2'), + '2_value1' => $this->instance->get('2_value1'), + '3_value1' => $this->instance->get('3_value1'), + ]); + + self::assertTrue($this->instance->clear()); + + self::assertEquals([ + '1_value1' => $value1, + '1_value2' => $value2, + '2_value1' => $value3, + '3_value1' => $value4, + ], [ + '1_value1' => $this->instance->get('1_value1'), + '1_value2' => $this->instance->get('1_value2'), + '2_value1' => $this->instance->get('2_value1'), + '3_value1' => $this->instance->get('3_value1'), + ]); + + self::assertTrue($this->instance->clear(false)); + + self::assertEquals([ + '1_value1' => null, + '1_value2' => null, + '2_value3' => null, + '3_value4' => null, + ], [ + '1_value1' => $this->instance->get('1_value1'), + '1_value2' => $this->instance->get('1_value2'), + '2_value3' => $this->instance->get('2_value3'), + '3_value4' => $this->instance->get('3_value4'), + ]); + } + + /** + * @medium + */ + public function testTTL() + { + static::markTestSkipped('taking too much time without mocking'); + + self::assertNull($this->instance->get('value1')); + + $value = 'foobar'; + $this->instance->set('value1', $value, 1); + $received = $this->instance->get('value1'); + self::assertEquals($value, $received, 'Value received from cache not equal to the original'); + + sleep(2); + + self::assertNull($this->instance->get('value1')); + } + + /** + * @small + * + * @param mixed $data the data to store in the cache + * + * @dataProvider dataTypesInCache + */ + public function testDifferentTypesInCache($data) + { + $this->instance->set('val', $data); + $received = $this->instance->get('val'); + self::assertEquals($data, $received, 'Value type changed from ' . gettype($data) . ' to ' . gettype($received)); + } + + /** + * @small + * + * @param mixed $value1 a first + * @param mixed $value2 a second + * @param mixed $value3 a third + * + * @dataProvider dataSimple + */ + public function testGetAllKeys($value1, $value2, $value3) + { + self::assertTrue($this->instance->set('value1', $value1)); + self::assertTrue($this->instance->set('value2', $value2)); + self::assertTrue($this->instance->set('test_value3', $value3)); + + $list = $this->instance->getAllKeys(); + + self::assertContains('value1', $list); + self::assertContains('value2', $list); + self::assertContains('test_value3', $list); + + $list = $this->instance->getAllKeys('test'); + + self::assertContains('test_value3', $list); + self::assertNotContains('value1', $list); + self::assertNotContains('value2', $list); + } + + /** + * @small + */ + public function testSpaceInKey() + { + self::assertTrue($this->instance->set('key space', 'value')); + self::assertEquals('value', $this->instance->get('key space')); + } + + public function testGetName() + { + if (defined(get_class($this->instance) . '::NAME')) { + self::assertEquals($this->instance::NAME, $this->instance->getName()); + } else { + self::expectNotToPerformAssertions(); + } + } +} diff --git a/tests/src/Core/Cache/CacheTest.php b/tests/src/Core/Cache/CacheTest.php deleted file mode 100644 index 47c5a7ccca..0000000000 --- a/tests/src/Core/Cache/CacheTest.php +++ /dev/null @@ -1,243 +0,0 @@ - ['data' => 'foobar'], - 'integer' => ['data' => 1], - 'boolTrue' => ['data' => true], - 'boolFalse' => ['data' => false], - 'float' => ['data' => 4.6634234], - 'array' => ['data' => ['1', '2', '3', '4', '5']], - 'object' => ['data' => new PidFile()], - 'null' => ['data' => null], - ]; - } - - /** - * Dataset for simple value sets/gets - * - * @return array - */ - public function dataSimple() - { - return [ - 'string' => [ - 'value1' => 'foobar', - 'value2' => 'ipsum lorum', - 'value3' => 'test', - 'value4' => 'lasttest', - ], - ]; - } - - abstract protected function getInstance(); - - protected function setUp(): void - { - parent::setUp(); - - $this->instance = $this->getInstance(); - - $this->instance->clear(false); - } - - /** - * @small - * @dataProvider dataSimple - * - * @param mixed $value1 a first - * @param mixed $value2 a second - */ - public function testSimple($value1, $value2) - { - self::assertNull($this->instance->get('value1')); - - $this->instance->set('value1', $value1); - $received = $this->instance->get('value1'); - self::assertEquals($value1, $received, 'Value received from cache not equal to the original'); - - $this->instance->set('value1', $value2); - $received = $this->instance->get('value1'); - self::assertEquals($value2, $received, 'Value not overwritten by second set'); - - $this->instance->set('value2', $value1); - $received2 = $this->instance->get('value2'); - self::assertEquals($value2, $received, 'Value changed while setting other variable'); - self::assertEquals($value1, $received2, 'Second value not equal to original'); - - self::assertNull($this->instance->get('not_set'), 'Unset value not equal to null'); - - self::assertTrue($this->instance->delete('value1')); - self::assertNull($this->instance->get('value1')); - } - - /** - * @small - * @dataProvider dataSimple - * - * @param mixed $value1 a first - * @param mixed $value2 a second - * @param mixed $value3 a third - * @param mixed $value4 a fourth - */ - public function testClear($value1, $value2, $value3, $value4) - { - $this->instance->set('1_value1', $value1); - $this->instance->set('1_value2', $value2); - $this->instance->set('2_value1', $value3); - $this->instance->set('3_value1', $value4); - - self::assertEquals([ - '1_value1' => $value1, - '1_value2' => $value2, - '2_value1' => $value3, - '3_value1' => $value4, - ], [ - '1_value1' => $this->instance->get('1_value1'), - '1_value2' => $this->instance->get('1_value2'), - '2_value1' => $this->instance->get('2_value1'), - '3_value1' => $this->instance->get('3_value1'), - ]); - - self::assertTrue($this->instance->clear()); - - self::assertEquals([ - '1_value1' => $value1, - '1_value2' => $value2, - '2_value1' => $value3, - '3_value1' => $value4, - ], [ - '1_value1' => $this->instance->get('1_value1'), - '1_value2' => $this->instance->get('1_value2'), - '2_value1' => $this->instance->get('2_value1'), - '3_value1' => $this->instance->get('3_value1'), - ]); - - self::assertTrue($this->instance->clear(false)); - - self::assertEquals([ - '1_value1' => null, - '1_value2' => null, - '2_value3' => null, - '3_value4' => null, - ], [ - '1_value1' => $this->instance->get('1_value1'), - '1_value2' => $this->instance->get('1_value2'), - '2_value3' => $this->instance->get('2_value3'), - '3_value4' => $this->instance->get('3_value4'), - ]); - } - - /** - * @medium - */ - public function testTTL() - { - static::markTestSkipped('taking too much time without mocking'); - - self::assertNull($this->instance->get('value1')); - - $value = 'foobar'; - $this->instance->set('value1', $value, 1); - $received = $this->instance->get('value1'); - self::assertEquals($value, $received, 'Value received from cache not equal to the original'); - - sleep(2); - - self::assertNull($this->instance->get('value1')); - } - - /** - * @small - * - * @param mixed $data the data to store in the cache - * - * @dataProvider dataTypesInCache - */ - public function testDifferentTypesInCache($data) - { - $this->instance->set('val', $data); - $received = $this->instance->get('val'); - self::assertEquals($data, $received, 'Value type changed from ' . gettype($data) . ' to ' . gettype($received)); - } - - /** - * @small - * - * @param mixed $value1 a first - * @param mixed $value2 a second - * @param mixed $value3 a third - * - * @dataProvider dataSimple - */ - public function testGetAllKeys($value1, $value2, $value3) - { - self::assertTrue($this->instance->set('value1', $value1)); - self::assertTrue($this->instance->set('value2', $value2)); - self::assertTrue($this->instance->set('test_value3', $value3)); - - $list = $this->instance->getAllKeys(); - - self::assertContains('value1', $list); - self::assertContains('value2', $list); - self::assertContains('test_value3', $list); - - $list = $this->instance->getAllKeys('test'); - - self::assertContains('test_value3', $list); - self::assertNotContains('value1', $list); - self::assertNotContains('value2', $list); - } - - /** - * @small - */ - public function testSpaceInKey() - { - self::assertTrue($this->instance->set('key space', 'value')); - self::assertEquals('value', $this->instance->get('key space')); - } - - public function testGetName() - { - if (defined(get_class($this->instance) . '::NAME')) { - self::assertEquals($this->instance::NAME, $this->instance->getName()); - } else { - self::expectNotToPerformAssertions(); - } - } -} diff --git a/tests/src/Core/Cache/DatabaseCacheTest.php b/tests/src/Core/Cache/DatabaseCacheTest.php index 5b4c61bc88..7b9f404ae1 100644 --- a/tests/src/Core/Cache/DatabaseCacheTest.php +++ b/tests/src/Core/Cache/DatabaseCacheTest.php @@ -7,13 +7,13 @@ namespace Friendica\Test\src\Core\Cache; -use Friendica\App\BaseURL; -use Friendica\Core\Cache; +use Friendica\Core\Cache\Type\DatabaseCache; +use Friendica\Test\CacheTestCase; use Friendica\Test\DatabaseTestTrait; use Friendica\Test\Util\CreateDatabaseTrait; use Friendica\Test\Util\VFSTrait; -class DatabaseCacheTest extends CacheTest +class DatabaseCacheTest extends CacheTestCase { use DatabaseTestTrait; use CreateDatabaseTrait; @@ -30,7 +30,7 @@ class DatabaseCacheTest extends CacheTest protected function getInstance() { - $this->cache = new Cache\Type\DatabaseCache('database', $this->getDbInstance()); + $this->cache = new DatabaseCache('database', $this->getDbInstance()); return $this->cache; } diff --git a/tests/src/Core/Cache/MemoryCacheTest.php b/tests/src/Core/Cache/MemoryCacheTest.php index 2e24e29c06..e6c82d3f14 100644 --- a/tests/src/Core/Cache/MemoryCacheTest.php +++ b/tests/src/Core/Cache/MemoryCacheTest.php @@ -9,8 +9,9 @@ namespace Friendica\Test\src\Core\Cache; use Exception; use Friendica\Core\Cache\Capability\ICanCacheInMemory; +use Friendica\Test\CacheTestCase; -abstract class MemoryCacheTest extends CacheTest +abstract class MemoryCacheTest extends CacheTestCase { /** * @var \Friendica\Core\Cache\Capability\ICanCacheInMemory