TYPO3 API  SVNRelease
t3lib_cache_frontend_phpfrontendTest.php
Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 2010-2011 Christian Kuhn <lolli@schwarzbu.ch>
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 /**
00027  * Testcase for the PHP source code cache frontend
00028  *
00029  * This file is a backport from FLOW3
00030  *
00031  * @author Christian Kuhn <lolli@schwarzbu.ch>
00032  * @package TYPO3
00033  * @subpackage tests
00034  * @version $Id$
00035  */
00036 class t3lib_cache_frontend_PhpFrontendTest extends tx_phpunit_testcase {
00037 
00038     /**
00039      * @test
00040      * @author Robert Lemke <robert@typo3.org>
00041      * @expectedException InvalidArgumentException
00042      */
00043     public function setChecksIfTheIdentifierIsValid() {
00044         $cache = $this->getMock('t3lib_cache_frontend_StringFrontend', array('isValidEntryIdentifier'), array(), '', FALSE);
00045         $cache->expects($this->once())->method('isValidEntryIdentifier')->with('foo')->will($this->returnValue(FALSE));
00046         $cache->set('foo', 'bar');
00047     }
00048 
00049     /**
00050      * @test
00051      * @author Robert Lemke <robert@typo3.org>
00052      */
00053     public function setPassesPhpSourceCodeTagsAndLifetimeToBackend() {
00054         $originalSourceCode = 'return "hello world!";';
00055         $modifiedSourceCode = '<?php' . chr(10) . $originalSourceCode . chr(10) . '#';
00056 
00057         $mockBackend = $this->getMock('t3lib_cache_backend_PhpCapableBackend', array(), array(), '', FALSE);
00058         $mockBackend->expects($this->once())->method('set')->with('Foo-Bar', $modifiedSourceCode, array('tags'), 1234);
00059 
00060         $cache = t3lib_div::makeInstance('t3lib_cache_frontend_PhpFrontend', 'PhpFrontend', $mockBackend);
00061         $cache->set('Foo-Bar', $originalSourceCode, array('tags'), 1234);
00062     }
00063 
00064     /**
00065      * @test
00066      * @author Robert Lemke <robert@typo3.org>
00067      * @expectedException t3lib_cache_exception_InvalidData
00068      */
00069     public function setThrowsInvalidDataExceptionOnNonStringValues() {
00070         $cache = $this->getMock('t3lib_cache_frontend_PhpFrontend', array('dummy'), array(), '', FALSE);
00071         $cache->set('Foo-Bar', array());
00072     }
00073 
00074     /**
00075      * @test
00076      * @author Robert Lemke <robert@typo3.org>
00077      */
00078     public function requireOnceCallsTheBackendsRequireOnceMethod() {
00079         $mockBackend = $this->getMock('t3lib_cache_backend_PhpCapableBackend', array(), array(), '', FALSE);
00080         $mockBackend->expects($this->once())->method('requireOnce')->with('Foo-Bar')->will($this->returnValue('hello world!'));
00081 
00082         $cache = t3lib_div::makeInstance('t3lib_cache_frontend_PhpFrontend', 'PhpFrontend', $mockBackend);
00083 
00084         $result = $cache->requireOnce('Foo-Bar');
00085         $this->assertSame('hello world!', $result);
00086     }
00087 }
00088 ?>