‪TYPO3CMS  11.5
TransientMemoryBackendTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
23 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
24 
28 class ‪TransientMemoryBackendTest extends UnitTestCase
29 {
30  protected ‪$resetSingletonInstances = true;
31 
36  {
37  $this->expectException(Exception::class);
38  $this->expectExceptionCode(1238244992);
39 
40  $backend = new ‪TransientMemoryBackend('Testing');
41  $data = 'Some data';
42  $identifier = 'MyIdentifier';
43  $backend->set($identifier, $data);
44  }
45 
50  {
51  $cache = $this->createMock(FrontendInterface::class);
52  $backend = new ‪TransientMemoryBackend('Testing');
53  $backend->setCache($cache);
54  $data = 'Some data';
55  $identifier = 'MyIdentifier';
56  $backend->set($identifier, $data);
57  $inCache = $backend->has($identifier);
58  self::assertTrue($inCache);
59  }
60 
64  public function ‪itIsPossibleToSetAndGetEntry(): void
65  {
66  $cache = $this->createMock(FrontendInterface::class);
67  $backend = new ‪TransientMemoryBackend('Testing');
68  $backend->setCache($cache);
69  $data = 'Some data';
70  $identifier = 'MyIdentifier';
71  $backend->set($identifier, $data);
72  $fetchedData = $backend->get($identifier);
73  self::assertEquals($data, $fetchedData);
74  }
75 
79  public function ‪itIsPossibleToRemoveEntryFromCache(): void
80  {
81  $cache = $this->createMock(FrontendInterface::class);
82  $backend = new ‪TransientMemoryBackend('Testing');
83  $backend->setCache($cache);
84  $data = 'Some data';
85  $identifier = 'MyIdentifier';
86  $backend->set($identifier, $data);
87  $backend->remove($identifier);
88  $inCache = $backend->has($identifier);
89  self::assertFalse($inCache);
90  }
91 
96  {
97  $cache = $this->createMock(FrontendInterface::class);
98  $backend = new ‪TransientMemoryBackend('Testing');
99  $backend->setCache($cache);
100  $data = 'Some data';
101  $identifier = 'MyIdentifier';
102  $backend->set($identifier, $data);
103  $otherData = 'some other data';
104  $backend->set($identifier, $otherData);
105  $fetchedData = $backend->get($identifier);
106  self::assertEquals($otherData, $fetchedData);
107  }
108 
113  {
114  $cache = $this->createMock(FrontendInterface::class);
115  $backend = new ‪TransientMemoryBackend('Testing');
116  $backend->setCache($cache);
117  $data = 'Some data';
118  $entryIdentifier = 'MyIdentifier';
119  $backend->set($entryIdentifier, $data, ['UnitTestTag%tag1', 'UnitTestTag%tag2']);
120  $retrieved = $backend->findIdentifiersByTag('UnitTestTag%tag1');
121  self::assertEquals($entryIdentifier, $retrieved[0]);
122  $retrieved = $backend->findIdentifiersByTag('UnitTestTag%tag2');
123  self::assertEquals($entryIdentifier, $retrieved[0]);
124  }
125 
130  {
131  $cache = $this->createMock(FrontendInterface::class);
132  $backend = new ‪TransientMemoryBackend('Testing');
133  $backend->setCache($cache);
134  $identifier = 'NonExistingIdentifier';
135  $inCache = $backend->has($identifier);
136  self::assertFalse($inCache);
137  }
138 
143  {
144  $cache = $this->createMock(FrontendInterface::class);
145  $backend = new ‪TransientMemoryBackend('Testing');
146  $backend->setCache($cache);
147  $identifier = 'NonExistingIdentifier';
148  $inCache = $backend->remove($identifier);
149  self::assertFalse($inCache);
150  }
151 
156  {
157  $cache = $this->createMock(FrontendInterface::class);
158  $backend = new ‪TransientMemoryBackend('Testing');
159  $backend->setCache($cache);
160  $data = 'some data' . microtime();
161  $backend->set('TransientMemoryBackendTest1', $data, ['UnitTestTag%test', 'UnitTestTag%boring']);
162  $backend->set('TransientMemoryBackendTest2', $data, ['UnitTestTag%test', 'UnitTestTag%special']);
163  $backend->set('TransientMemoryBackendTest3', $data, ['UnitTestTag%test']);
164  $backend->flushByTag('UnitTestTag%special');
165  self::assertTrue($backend->has('TransientMemoryBackendTest1'), 'TransientMemoryBackendTest1');
166  self::assertFalse($backend->has('TransientMemoryBackendTest2'), 'TransientMemoryBackendTest2');
167  self::assertTrue($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3');
168  }
169 
174  {
175  $cache = $this->createMock(FrontendInterface::class);
176  $backend = new ‪TransientMemoryBackend('Testing');
177  $backend->setCache($cache);
178  $data = 'some data' . microtime();
179  $backend->set('TransientMemoryBackendTest1', $data, ['UnitTestTag%test', 'UnitTestTag%boring']);
180  $backend->set('TransientMemoryBackendTest2', $data, ['UnitTestTag%test', 'UnitTestTag%special']);
181  $backend->set('TransientMemoryBackendTest3', $data, ['UnitTestTag%test']);
182  $backend->flushByTags(['UnitTestTag%special', 'UnitTestTag%boring']);
183  self::assertFalse($backend->has('TransientMemoryBackendTest1'), 'TransientMemoryBackendTest1');
184  self::assertFalse($backend->has('TransientMemoryBackendTest2'), 'TransientMemoryBackendTest2');
185  self::assertTrue($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3');
186  }
187 
191  public function ‪flushRemovesAllCacheEntries(): void
192  {
193  $cache = $this->createMock(FrontendInterface::class);
194  $backend = new ‪TransientMemoryBackend('Testing');
195  $backend->setCache($cache);
196  $data = 'some data' . microtime();
197  $backend->set('TransientMemoryBackendTest1', $data);
198  $backend->set('TransientMemoryBackendTest2', $data);
199  $backend->set('TransientMemoryBackendTest3', $data);
200  $backend->flush();
201  self::assertFalse($backend->has('TransientMemoryBackendTest1'), 'TransientMemoryBackendTest1');
202  self::assertFalse($backend->has('TransientMemoryBackendTest2'), 'TransientMemoryBackendTest2');
203  self::assertFalse($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3');
204  }
205 }
‪TYPO3\CMS\Core\Cache\Backend\TransientMemoryBackend
Definition: TransientMemoryBackend.php:25
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend
Definition: AbstractBackendTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\flushByTagRemovesCacheEntriesWithSpecifiedTag
‪flushByTagRemovesCacheEntriesWithSpecifiedTag()
Definition: TransientMemoryBackendTest.php:155
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\itIsPossibleToOverwriteAnEntryInTheCache
‪itIsPossibleToOverwriteAnEntryInTheCache()
Definition: TransientMemoryBackendTest.php:95
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\flushRemovesAllCacheEntries
‪flushRemovesAllCacheEntries()
Definition: TransientMemoryBackendTest.php:191
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\findIdentifiersByTagFindsCacheEntriesWithSpecifiedTag
‪findIdentifiersByTagFindsCacheEntriesWithSpecifiedTag()
Definition: TransientMemoryBackendTest.php:112
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\hasReturnsFalseIfTheEntryDoesntExist
‪hasReturnsFalseIfTheEntryDoesntExist()
Definition: TransientMemoryBackendTest.php:129
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\itIsPossibleToSetAndGetEntry
‪itIsPossibleToSetAndGetEntry()
Definition: TransientMemoryBackendTest.php:64
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\$resetSingletonInstances
‪$resetSingletonInstances
Definition: TransientMemoryBackendTest.php:30
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\itIsPossibleToRemoveEntryFromCache
‪itIsPossibleToRemoveEntryFromCache()
Definition: TransientMemoryBackendTest.php:79
‪TYPO3\CMS\Core\Cache\Exception
Definition: DuplicateIdentifierException.php:16
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\setThrowsExceptionIfNoFrontEndHasBeenSet
‪setThrowsExceptionIfNoFrontEndHasBeenSet()
Definition: TransientMemoryBackendTest.php:35
‪TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
Definition: FrontendInterface.php:22
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\flushByTagsRemovesCacheEntriesWithSpecifiedTags
‪flushByTagsRemovesCacheEntriesWithSpecifiedTags()
Definition: TransientMemoryBackendTest.php:173
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest
Definition: TransientMemoryBackendTest.php:29
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\itIsPossibleToSetAndCheckExistenceInCache
‪itIsPossibleToSetAndCheckExistenceInCache()
Definition: TransientMemoryBackendTest.php:49
‪TYPO3\CMS\Core\Tests\Unit\Cache\Backend\TransientMemoryBackendTest\removeReturnsFalseIfTheEntryDoesntExist
‪removeReturnsFalseIfTheEntryDoesntExist()
Definition: TransientMemoryBackendTest.php:142