]> git.mxchange.org Git - friendica.git/blob - tests/src/Core/Cache/DatabaseCacheDriverTest.php
Merge pull request #6580 from MrPetovan/bug/6575-escaped-field-input-attributes
[friendica.git] / tests / src / Core / Cache / DatabaseCacheDriverTest.php
1 <?php
2
3 namespace Friendica\Test\src\Core\Cache;
4
5 use Friendica\Core\Cache;
6 use Friendica\Core\Cache\CacheDriverFactory;
7 use Friendica\Test\Util\DbaCacheMockTrait;
8
9 /**
10  * @runTestsInSeparateProcesses
11  * @preserveGlobalState disabled
12  */
13 class DatabaseCacheDriverTest extends CacheTest
14 {
15         use DbaCacheMockTrait;
16
17         public function setUp()
18         {
19                 $this->mockConnected();
20                 $this->mockConnect();
21
22                 // The first "clear" at setup
23                 $this->mockClear(false, true, 2);
24
25                 parent::setUp();
26         }
27
28         protected function getInstance()
29         {
30                 $this->cache = CacheDriverFactory::create('database');
31                 return $this->cache;
32         }
33
34         public function tearDown()
35         {
36                 $this->cache->clear(false);
37                 parent::tearDown();
38         }
39
40         /**
41          * {@inheritdoc}
42          * @dataProvider dataSimple
43          */
44         public function testSimple($value1, $value2)
45         {
46                 // assertNull
47                 $this->mockGet('value1', null, $this->startTime, 1);
48
49                 // assertEquals
50                 $this->mockSet('value1', $value1, Cache::FIVE_MINUTES, $this->startTime, true, 1);
51                 $this->mockGet('value1', $value1, $this->startTime, 1);
52
53                 // assertEquals
54                 $this->mockSet('value1', $value2, Cache::FIVE_MINUTES, $this->startTime, true, 1);
55                 $this->mockGet('value1', $value2, $this->startTime, 1);
56
57                 // assertEquals
58                 $this->mockSet('value2', $value1, Cache::FIVE_MINUTES, $this->startTime, true, 1);
59                 $this->mockGet('value2', $value1, $this->startTime, 1);
60
61                 // assertNull
62                 $this->mockGet('not_set', null, $this->startTime, 1);
63
64                 // assertNull
65                 $this->mockDelete('value1', true, 1);
66                 $this->mockGet('value1', null, $this->startTime, 1);
67
68                 parent::testSimple($value1, $value2);
69         }
70
71         /**
72          * {@inheritdoc}
73          * @dataProvider dataSimple
74          */
75         public function testClear($value1, $value2, $value3, $value4)
76         {
77                 // assert Equals
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);
82
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);
87
88                 // assertTrue
89                 $this->mockClear(true, true, 1);
90                 $this->mockClear(false, true, 1);
91
92                 // assertEquals
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);
97
98                 parent::testClear($value1, $value2, $value3, $value4);
99         }
100
101         /**
102          * {@inheritdoc}
103          * @dataProvider dataTypesInCache
104          */
105         public function testDifferentTypesInCache($data)
106         {
107                 $this->mockSet('val', $data, Cache::FIVE_MINUTES, $this->startTime, true, 1);
108                 $this->mockGet('val', $data, $this->startTime, 1);
109
110                 parent::testDifferentTypesInCache($data);
111         }
112
113         /**
114          * {@inheritdoc}
115          * @dataProvider dataSimple
116          */
117         public function testGetAllKeys($value1, $value2, $value3)
118         {
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);
122
123                 $result = [
124                         ['k' => 'value1'],
125                         ['k' => 'value2'],
126                         ['k' => 'test_value3'],
127                 ];
128
129                 $this->mockGetAllKeys(null, $result, $this->startTime, 1);
130
131                 $result = [
132                         ['k' => 'test_value3'],
133                 ];
134
135                 $this->mockGetAllKeys('test', $result, $this->startTime, 1);
136
137                 parent::testGetAllKeys($value1, $value2, $value3);
138         }
139 }