3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests
;
8 use PHPUnit\Framework\Attributes\CoversClass
;
9 use PHPUnit\Framework\Attributes\DataProvider
;
12 #[CoversClass(Cache::class)]
13 class CacheTest
extends AbstractTestCase
15 protected function setUp(): void
20 /** @return mixed[][] */
21 public static function dataProviderCacheKeyValues(): array
24 'normal key and false value' => ['mykey', false],
25 'normal key and null value' => ['mykey', null],
26 'normal key and object value' => ['mykey', new stdClass()],
30 #[DataProvider('dataProviderCacheKeyValues')]
31 public function testCacheHas(string $cacheKey, mixed $valueToCache): void
33 self
::assertFalse(Cache
::has($cacheKey));
34 Cache
::set($cacheKey, $valueToCache);
35 self
::assertTrue(Cache
::has($cacheKey));
36 Cache
::remove($cacheKey);
37 self
::assertFalse(Cache
::has($cacheKey));
40 #[DataProvider('dataProviderCacheKeyValues')]
41 public function testCachePurge(string $cacheKey, mixed $valueToCache): void
43 self
::assertFalse(Cache
::has($cacheKey));
44 Cache
::set($cacheKey, $valueToCache);
45 self
::assertTrue(Cache
::has($cacheKey));
47 self
::assertFalse(Cache
::has($cacheKey));
50 #[DataProvider('dataProviderCacheKeyValues')]
51 public function testCacheSet(string $cacheKey, mixed $valueToCache): void
53 self
::assertFalse(Cache
::has($cacheKey));
54 Cache
::set($cacheKey, $valueToCache);
55 self
::assertTrue(Cache
::has($cacheKey));
58 #[DataProvider('dataProviderCacheKeyValues')]
59 public function testCacheGet(string $cacheKey, mixed $valueToCache): void
61 self
::assertFalse(Cache
::has($cacheKey));
62 Cache
::set($cacheKey, $valueToCache);
63 self
::assertTrue(Cache
::has($cacheKey));
64 self
::assertSame(Cache
::get($cacheKey), $valueToCache);
67 #[DataProvider('dataProviderCacheKeyValues')]
68 public function testCacheGetDefaultValue(string $cacheKey, mixed $valueToCache): void
70 self
::assertFalse(Cache
::has($cacheKey));
71 Cache
::set($cacheKey, $valueToCache);
72 self
::assertTrue(Cache
::has($cacheKey));
73 self
::assertSame(Cache
::get($cacheKey, null), $valueToCache);
74 Cache
::remove($cacheKey);
75 self
::assertFalse(Cache
::has($cacheKey));
76 self
::assertNull(Cache
::get($cacheKey, null));
77 $defaultValue = new stdClass();
78 self
::assertSame($defaultValue, Cache
::get($cacheKey, $defaultValue));
79 self
::assertFalse(Cache
::get($cacheKey, false));
82 #[DataProvider('dataProviderCacheKeyValues')]
83 public function testCacheRemove(string $cacheKey, mixed $valueToCache): void
85 self
::assertFalse(Cache
::has($cacheKey));
86 Cache
::set($cacheKey, $valueToCache);
87 self
::assertTrue(Cache
::has($cacheKey));
88 Cache
::remove($cacheKey);
89 self
::assertFalse(Cache
::has($cacheKey));