3 namespace Friendica\Test\src\Core\Cache;
5 use Friendica\Core\Cache;
6 use Friendica\Core\Cache\CacheDriverFactory;
7 use Friendica\Test\Util\DbaCacheMockTrait;
10 * @runTestsInSeparateProcesses
11 * @preserveGlobalState disabled
13 class DatabaseCacheDriverTest extends CacheTest
15 use DbaCacheMockTrait;
17 public function setUp()
19 $this->mockConnected();
22 // The first "clear" at setup
23 $this->mockClear(false, true, 2);
28 protected function getInstance()
30 $this->cache = CacheDriverFactory::create('database');
34 public function tearDown()
36 $this->cache->clear(false);
42 * @dataProvider dataSimple
44 public function testSimple($value1, $value2)
47 $this->mockGet('value1', null, $this->startTime, 1);
50 $this->mockSet('value1', $value1, Cache::FIVE_MINUTES, $this->startTime, true, 1);
51 $this->mockGet('value1', $value1, $this->startTime, 1);
54 $this->mockSet('value1', $value2, Cache::FIVE_MINUTES, $this->startTime, true, 1);
55 $this->mockGet('value1', $value2, $this->startTime, 1);
58 $this->mockSet('value2', $value1, Cache::FIVE_MINUTES, $this->startTime, true, 1);
59 $this->mockGet('value2', $value1, $this->startTime, 1);
62 $this->mockGet('not_set', null, $this->startTime, 1);
65 $this->mockDelete('value1', true, 1);
66 $this->mockGet('value1', null, $this->startTime, 1);
68 parent::testSimple($value1, $value2);
73 * @dataProvider dataSimple
75 public function testClear($value1, $value2, $value3, $value4)
78 $this->mockSet('1_value1', $value1, Cache::FIVE_MINUTES, $this->startTime, true, 1);
79 $this->mockSet('1_value2', $value2, Cache::FIVE_MINUTES, $this->startTime, true, 1);
80 $this->mockSet('2_value1', $value3, Cache::FIVE_MINUTES, $this->startTime, true, 1);
81 $this->mockSet('3_value1', $value4, Cache::FIVE_MINUTES, $this->startTime, true, 1);
83 $this->mockGet('1_value1', $value1, $this->startTime, 2);
84 $this->mockGet('1_value2', $value2, $this->startTime, 2);
85 $this->mockGet('2_value1', $value3, $this->startTime, 2);
86 $this->mockGet('3_value1', $value4, $this->startTime, 2);
89 $this->mockClear(true, true, 1);
90 $this->mockClear(false, true, 1);
93 $this->mockGet('1_value1', null, $this->startTime, 1);
94 $this->mockGet('1_value2', null, $this->startTime, 1);
95 $this->mockGet('2_value3', null, $this->startTime, 1);
96 $this->mockGet('3_value4', null, $this->startTime, 1);
98 parent::testClear($value1, $value2, $value3, $value4);
103 * @dataProvider dataTypesInCache
105 public function testDifferentTypesInCache($data)
107 $this->mockSet('val', $data, Cache::FIVE_MINUTES, $this->startTime, true, 1);
108 $this->mockGet('val', $data, $this->startTime, 1);
110 parent::testDifferentTypesInCache($data);
115 * @dataProvider dataSimple
117 public function testGetAllKeys($value1, $value2, $value3)
119 $this->mockSet('value1', $value1, Cache::FIVE_MINUTES, $this->startTime, true, 1);
120 $this->mockSet('value2', $value2,Cache::FIVE_MINUTES, $this->startTime, true, 1);
121 $this->mockSet('test_value3', $value3, Cache::FIVE_MINUTES, $this->startTime, true, 1);
126 ['k' => 'test_value3'],
129 $this->mockGetAllKeys(null, $result, $this->startTime, 1);
132 ['k' => 'test_value3'],
135 $this->mockGetAllKeys('test', $result, $this->startTime, 1);
137 parent::testGetAllKeys($value1, $value2, $value3);