2 declare(strict_types = 1);
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
41 $this->expectException(Exception::class);
42 $this->expectExceptionCode(1259515600);
46 $identifier =
'MyIdentifier';
47 $backend->set($identifier, $data);
57 $identifier =
'MyIdentifier';
58 $backend->set($identifier, $data);
59 $this->assertTrue($backend->has($identifier));
69 $identifier =
'MyIdentifier';
70 $backend->set($identifier, $data);
71 $fetchedData = $backend->get($identifier);
72 $this->assertEquals($data, $fetchedData);
82 $identifier =
'MyIdentifier';
83 $backend->set($identifier, $data);
84 $backend->remove($identifier);
85 $this->assertFalse($backend->has($identifier));
95 $identifier =
'MyIdentifier';
96 $backend->set($identifier, $data);
97 $otherData =
'some other data';
98 $backend->set($identifier, $otherData);
99 $fetchedData = $backend->get($identifier);
100 $this->assertEquals($otherData, $fetchedData);
110 $entryIdentifier =
'MyIdentifier';
111 $backend->set($entryIdentifier, $data, [
'UnitTestTag%tag1',
'UnitTestTag%tag2']);
112 $retrieved = $backend->findIdentifiersByTag(
'UnitTestTag%tag1');
113 $this->assertEquals($entryIdentifier, $retrieved[0]);
114 $retrieved = $backend->findIdentifiersByTag(
'UnitTestTag%tag2');
115 $this->assertEquals($entryIdentifier, $retrieved[0]);
125 $entryIdentifier =
'MyIdentifier';
126 $backend->set($entryIdentifier, $data, [
'UnitTestTag%tag1',
'UnitTestTag%tag2']);
127 $backend->set($entryIdentifier, $data, [
'UnitTestTag%tag3']);
128 $retrieved = $backend->findIdentifiersByTag(
'UnitTestTag%tag2');
129 $this->assertEquals([], $retrieved);
139 $entryIdentifier = $this->getUniqueId(
'test');
140 $backend->set($entryIdentifier, $data1, [], 1);
143 $backend->set($entryIdentifier, $data2, [], 10);
144 $this->assertEquals($data2, $backend->get($entryIdentifier));
153 $identifier =
'NonExistingIdentifier';
154 $this->assertFalse($backend->has($identifier));
163 $identifier =
'NonExistingIdentifier';
164 $this->assertFalse($backend->remove($identifier));
173 $data =
'some data' . microtime();
174 $backend->set(
'PdoBackendTest1', $data, [
'UnitTestTag%test',
'UnitTestTag%boring']);
175 $backend->set(
'PdoBackendTest2', $data, [
'UnitTestTag%test',
'UnitTestTag%special']);
176 $backend->set(
'PdoBackendTest3', $data, [
'UnitTestTag%test']);
177 $backend->flushByTag(
'UnitTestTag%special');
178 $this->assertTrue($backend->has(
'PdoBackendTest1'),
'PdoBackendTest1');
179 $this->assertFalse($backend->has(
'PdoBackendTest2'),
'PdoBackendTest2');
180 $this->assertTrue($backend->has(
'PdoBackendTest3'),
'PdoBackendTest3');
189 $data =
'some data' . microtime();
190 $backend->set(
'PdoBackendTest1', $data, [
'UnitTestTag%test',
'UnitTestTags%boring']);
191 $backend->set(
'PdoBackendTest2', $data, [
'UnitTestTag%test',
'UnitTestTag%special']);
192 $backend->set(
'PdoBackendTest3', $data, [
'UnitTestTag%test']);
193 $backend->flushByTags([
'UnitTestTag%special',
'UnitTestTags%boring']);
194 $this->assertFalse($backend->has(
'PdoBackendTest1'),
'PdoBackendTest1');
195 $this->assertFalse($backend->has(
'PdoBackendTest2'),
'PdoBackendTest2');
196 $this->assertTrue($backend->has(
'PdoBackendTest3'),
'PdoBackendTest3');
205 $data =
'some data' . microtime();
206 $backend->set(
'PdoBackendTest1', $data);
207 $backend->set(
'PdoBackendTest2', $data);
208 $backend->set(
'PdoBackendTest3', $data);
210 $this->assertFalse($backend->has(
'PdoBackendTest1'),
'PdoBackendTest1');
211 $this->assertFalse($backend->has(
'PdoBackendTest2'),
'PdoBackendTest2');
212 $this->assertFalse($backend->has(
'PdoBackendTest3'),
'PdoBackendTest3');
220 $thisCache = $this->createMock(FrontendInterface::class);
221 $thisCache->expects($this->any())->method(
'getIdentifier')->will($this->returnValue(
'thisCache'));
223 $thisBackend->setCache($thisCache);
224 $thatCache = $this->createMock(FrontendInterface::class);
225 $thatCache->expects($this->any())->method(
'getIdentifier')->will($this->returnValue(
'thatCache'));
227 $thatBackend->setCache($thatCache);
228 $thisBackend->set(
'thisEntry',
'Hello');
229 $thatBackend->set(
'thatEntry',
'World!');
230 $thatBackend->flush();
231 $this->assertEquals(
'Hello', $thisBackend->get(
'thisEntry'));
232 $this->assertFalse($thatBackend->has(
'thatEntry'));
241 $data =
'some data' . microtime();
242 $entryIdentifier =
'BackendPDORemovalTest';
243 $backend->set($entryIdentifier, $data, [], 1);
244 $this->assertTrue($backend->has($entryIdentifier));
246 $backend->collectGarbage();
247 $this->assertFalse($backend->has($entryIdentifier));
256 $data =
'some data' . microtime();
257 $entryIdentifier =
'BackendPDORemovalTest';
258 $backend->set($entryIdentifier .
'A', $data, [],
null);
259 $backend->set($entryIdentifier .
'B', $data, [], 10);
260 $backend->set($entryIdentifier .
'C', $data, [], 1);
261 $backend->set($entryIdentifier .
'D', $data, [], 1);
262 $this->assertTrue($backend->has($entryIdentifier .
'A'));
263 $this->assertTrue($backend->has($entryIdentifier .
'B'));
264 $this->assertTrue($backend->has($entryIdentifier .
'C'));
265 $this->assertTrue($backend->has($entryIdentifier .
'D'));
267 $backend->collectGarbage();
268 $this->assertTrue($backend->has($entryIdentifier .
'A'));
269 $this->assertTrue($backend->has($entryIdentifier .
'B'));
270 $this->assertFalse($backend->has($entryIdentifier .
'C'));
271 $this->assertFalse($backend->has($entryIdentifier .
'D'));
281 $mockCache = $this->createMock(FrontendInterface::class);
282 $mockCache->expects($this->any())->method(
'getIdentifier')->will($this->returnValue(
'TestCache'));
283 $backend = GeneralUtility::makeInstance(PdoBackend::class,
'Testing');
284 $backend->setCache($mockCache);
285 $backend->setDataSourceName(
'sqlite::memory:');
286 $backend->initializeObject();