|
TYPO3 API
SVNRelease
|
00001 <?php 00002 /*************************************************************** 00003 * Copyright notice 00004 * 00005 * (c) 2009-2011 Ingo Renner <ingo@typo3.org> 00006 * All rights reserved 00007 * 00008 * This script is part of the TYPO3 project. The TYPO3 project is 00009 * free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * The GNU General Public License can be found at 00015 * http://www.gnu.org/copyleft/gpl.html. 00016 * 00017 * This script is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU General Public License for more details. 00021 * 00022 * This copyright notice MUST APPEAR in all copies of the script! 00023 ***************************************************************/ 00024 00025 /** 00026 * Testcase for the TransientMemory cache backend 00027 * 00028 * This file is a backport from FLOW3 00029 * 00030 * @author Ingo Renner <ingo@typo3.org> 00031 * @package TYPO3 00032 * @subpackage tests 00033 * @version $Id: t3lib_cache_backend_transientmemorybackendTest.php 10121 2011-01-18 20:15:30Z ohader $ 00034 */ 00035 class t3lib_cache_backend_TransientMemoryBackendTest extends tx_phpunit_testcase { 00036 00037 /** 00038 * @expectedException t3lib_cache_Exception 00039 * @test 00040 * @author Robert Lemke <robert@typo3.org> 00041 */ 00042 public function setThrowsExceptionIfNoFrontEndHasBeenSet() { 00043 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00044 00045 $data = 'Some data'; 00046 $identifier = 'MyIdentifier'; 00047 $backend->set($identifier, $data); 00048 } 00049 00050 /** 00051 * @test 00052 * @author Robert Lemke <robert@typo3.org> 00053 * @author Ingo Renner <ingo@typo3.org> 00054 */ 00055 public function itIsPossibleToSetAndCheckExistenceInCache() { 00056 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00057 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00058 $backend->setCache($cache); 00059 00060 $data = 'Some data'; 00061 $identifier = 'MyIdentifier'; 00062 $backend->set($identifier, $data); 00063 $inCache = $backend->has($identifier); 00064 $this->assertTrue($inCache); 00065 } 00066 00067 /** 00068 * @test 00069 * @author Robert Lemke <robert@typo3.org> 00070 * @author Ingo Renner <ingo@typo3.org> 00071 */ 00072 public function itIsPossibleToSetAndGetEntry() { 00073 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00074 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00075 $backend->setCache($cache); 00076 00077 $data = 'Some data'; 00078 $identifier = 'MyIdentifier'; 00079 $backend->set($identifier, $data); 00080 $fetchedData = $backend->get($identifier); 00081 $this->assertEquals($data, $fetchedData); 00082 } 00083 00084 /** 00085 * @test 00086 * @author Robert Lemke <robert@typo3.org> 00087 * @author Ingo Renner <ingo@typo3.org> 00088 */ 00089 public function itIsPossibleToRemoveEntryFromCache() { 00090 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00091 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00092 $backend->setCache($cache); 00093 00094 $data = 'Some data'; 00095 $identifier = 'MyIdentifier'; 00096 $backend->set($identifier, $data); 00097 $backend->remove($identifier); 00098 $inCache = $backend->has($identifier); 00099 $this->assertFalse($inCache); 00100 } 00101 00102 /** 00103 * @test 00104 * @author Robert Lemke <robert@typo3.org> 00105 * @author Ingo Renner <ingo@typo3.org> 00106 */ 00107 public function itIsPossibleToOverwriteAnEntryInTheCache() { 00108 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00109 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00110 $backend->setCache($cache); 00111 00112 $data = 'Some data'; 00113 $identifier = 'MyIdentifier'; 00114 $backend->set($identifier, $data); 00115 $otherData = 'some other data'; 00116 $backend->set($identifier, $otherData); 00117 $fetchedData = $backend->get($identifier); 00118 $this->assertEquals($otherData, $fetchedData); 00119 } 00120 00121 /** 00122 * @test 00123 * @author Robert Lemke <robert@typo3.org> 00124 * @author Ingo Renner <ingo@typo3.org> 00125 */ 00126 public function findIdentifiersByTagFindsCacheEntriesWithSpecifiedTag() { 00127 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00128 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00129 $backend->setCache($cache); 00130 00131 $data = 'Some data'; 00132 $entryIdentifier = 'MyIdentifier'; 00133 $backend->set($entryIdentifier, $data, array('UnitTestTag%tag1', 'UnitTestTag%tag2')); 00134 00135 $retrieved = $backend->findIdentifiersByTag('UnitTestTag%tag1'); 00136 $this->assertEquals($entryIdentifier, $retrieved[0]); 00137 00138 $retrieved = $backend->findIdentifiersByTag('UnitTestTag%tag2'); 00139 $this->assertEquals($entryIdentifier, $retrieved[0]); 00140 } 00141 00142 /** 00143 * @test 00144 * @author Robert Lemke <robert@typo3.org> 00145 * @author Ingo Renner <ingo@typo3.org> 00146 */ 00147 public function hasReturnsFalseIfTheEntryDoesntExist() { 00148 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00149 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00150 $backend->setCache($cache); 00151 00152 $identifier = 'NonExistingIdentifier'; 00153 $inCache = $backend->has($identifier); 00154 $this->assertFalse($inCache); 00155 } 00156 00157 /** 00158 * @test 00159 * @author Robert Lemke <robert@typo3.org> 00160 * @author Ingo Renner <ingo@typo3.org> 00161 */ 00162 public function removeReturnsFalseIfTheEntryDoesntExist() { 00163 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00164 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00165 $backend->setCache($cache); 00166 00167 $identifier = 'NonExistingIdentifier'; 00168 $inCache = $backend->remove($identifier); 00169 $this->assertFalse($inCache); 00170 } 00171 00172 /** 00173 * @test 00174 * @author Robert Lemke <robert@typo3.org> 00175 * @author Karsten Dambekalns <karsten@typo3.org> 00176 * @author Ingo Renner <ingo@typo3.org> 00177 */ 00178 public function flushByTagRemovesCacheEntriesWithSpecifiedTag() { 00179 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00180 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00181 $backend->setCache($cache); 00182 00183 $data = 'some data' . microtime(); 00184 $backend->set('TransientMemoryBackendTest1', $data, array('UnitTestTag%test', 'UnitTestTag%boring')); 00185 $backend->set('TransientMemoryBackendTest2', $data, array('UnitTestTag%test', 'UnitTestTag%special')); 00186 $backend->set('TransientMemoryBackendTest3', $data, array('UnitTestTag%test')); 00187 00188 $backend->flushByTag('UnitTestTag%special'); 00189 00190 $this->assertTrue($backend->has('TransientMemoryBackendTest1'), 'TransientMemoryBackendTest1'); 00191 $this->assertFalse($backend->has('TransientMemoryBackendTest2'), 'TransientMemoryBackendTest2'); 00192 $this->assertTrue($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3'); 00193 } 00194 00195 /** 00196 * @test 00197 * @author Karsten Dambekalns <karsten@typo3.org> 00198 * @author Ingo Renner <ingo@typo3.org> 00199 */ 00200 public function flushRemovesAllCacheEntries() { 00201 $cache = $this->getMock('t3lib_cache_frontend_Frontend', array(), array(), '', FALSE); 00202 $backend = new t3lib_cache_backend_TransientMemoryBackend(); 00203 $backend->setCache($cache); 00204 00205 $data = 'some data' . microtime(); 00206 $backend->set('TransientMemoryBackendTest1', $data); 00207 $backend->set('TransientMemoryBackendTest2', $data); 00208 $backend->set('TransientMemoryBackendTest3', $data); 00209 00210 $backend->flush(); 00211 00212 $this->assertFalse($backend->has('TransientMemoryBackendTest1'), 'TransientMemoryBackendTest1'); 00213 $this->assertFalse($backend->has('TransientMemoryBackendTest2'), 'TransientMemoryBackendTest2'); 00214 $this->assertFalse($backend->has('TransientMemoryBackendTest3'), 'TransientMemoryBackendTest3'); 00215 } 00216 } 00217 00218 ?>
1.8.0