Merge pull request #19552 from kamil-tekiela/Fix-default-values
[phpmyadmin.git] / tests / unit / CacheTest.php
blob0f29b868e44b0f4fa484840d254dacf9eb4d14fb
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin\Tests;
7 use PhpMyAdmin\Cache;
8 use PHPUnit\Framework\Attributes\CoversClass;
9 use PHPUnit\Framework\Attributes\DataProvider;
10 use stdClass;
12 #[CoversClass(Cache::class)]
13 class CacheTest extends AbstractTestCase
15 protected function setUp(): void
17 Cache::purge();
20 /** @return mixed[][] */
21 public static function dataProviderCacheKeyValues(): array
23 return [
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));
46 Cache::purge();
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));