added setException method to ErrorLayout class
This commit is contained in:
@ -11,5 +11,20 @@
|
|||||||
|
|
||||||
class ErrorLayout extends Layout
|
class ErrorLayout extends Layout
|
||||||
{
|
{
|
||||||
protected function execute(){}
|
/**
|
||||||
|
* @var GeneralException
|
||||||
|
*/
|
||||||
|
protected $exception;
|
||||||
|
|
||||||
|
protected function execute()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param GeneralException $exception
|
||||||
|
*/
|
||||||
|
public function setException(GeneralException $exception)
|
||||||
|
{
|
||||||
|
$this->exception = $exception;
|
||||||
|
}
|
||||||
}
|
}
|
82
tests/layout/ErrorLayoutTest.php
Normal file
82
tests/layout/ErrorLayoutTest.php
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @copyright NetMonsters <team@netmonsters.ru>
|
||||||
|
* @link http://netmonsters.ru
|
||||||
|
* @package Majestic
|
||||||
|
* @subpackage UnitTests
|
||||||
|
* @since 04-06-2012
|
||||||
|
* @user: agrebnev
|
||||||
|
*/
|
||||||
|
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
if (!defined('DEBUG')) {
|
||||||
|
define('DEBUG', false);
|
||||||
|
}
|
||||||
|
$layout = new ErrorLayout();
|
||||||
|
$layout->setException(new GeneralException());
|
||||||
|
$this->assertAttributeInstanceOf('GeneralException', 'exception', $layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExecute()
|
||||||
|
{
|
||||||
|
if (!defined('DEBUG')) {
|
||||||
|
define('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();
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user