* @link http://netmonsters.ru * @package Majestic * @subpackage UnitTests * @since 04-06-2012 * @user: agrebnev */ require_once dirname(__FILE__) . '/../../Registry.php'; require_once dirname(__FILE__) . '/../../Config.php'; require_once dirname(__FILE__) . '/../../exception/ErrorHandler.php'; require_once dirname(__FILE__) . '/../../exception/GeneralException.php'; require_once dirname(__FILE__) . '/../../app/FrontController.php'; require_once dirname(__FILE__) . '/../../layout/Layout.php'; require_once dirname(__FILE__) . '/../../layout/Error.layout.php'; /** * @runTestsInSeparateProcesses */ class ErrorLayoutTest extends PHPUnit_Framework_TestCase { public function run(PHPUnit_Framework_TestResult $result = NULL) { $this->setPreserveGlobalState(false); return parent::run($result); } public function setUp() { if (!class_exists('RouterMock')) { $this->getMock('Router', array(), array(), 'RouterMock', false); } if (!class_exists('PHPViewMock')) { $this->getMock('PHPView', array('fetch', 'append', 'prepend', 'assign', 'getTemplate'), array(), 'PHPViewMock', false); } set_new_overload(array($this, 'newCallback')); } public function testSetException() { Config::set('DEBUG', false); $layout = new ErrorLayout(); $layout->setException(new GeneralException()); $this->assertAttributeInstanceOf('GeneralException', 'exception', $layout); } public function testExecute() { Config::set('DEBUG', false); $action = $this->getMock('Action', array('fetch')); $action->expects($this->once()) ->method('fetch') ->will($this->returnValue('this is the result of Action::fetch()')); $layout = new ErrorLayout(); $layout->fetch($action); } protected function newCallback($className) { switch ($className) { case 'Router': return 'RouterMock'; case 'PHPView': return 'PHPViewMock'; default: return $className; } } public function tearDown() { unset_new_overload(); } }