You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							70 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							70 lines
						
					
					
						
							1.6 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace yii\codeception; | 
						|
 | 
						|
use Yii; | 
						|
use yii\base\InvalidConfigException; | 
						|
use Codeception\TestCase\Test; | 
						|
 | 
						|
/** | 
						|
 * TestCase is the base class for all codeception unit tests | 
						|
 * | 
						|
 * @author Mark Jebri <mark.github@yandex.ru> | 
						|
 * @since 2.0 | 
						|
 */ | 
						|
class TestCase extends Test | 
						|
{ | 
						|
	/** | 
						|
	 * @var array|string the application configuration that will be used for creating an application instance for each test. | 
						|
	 * You can use a string to represent the file path or path alias of a configuration file. | 
						|
	 */ | 
						|
	public static $appConfig = []; | 
						|
	/** | 
						|
	 * @var string the application class that [[mockApplication()]] should use | 
						|
	 */ | 
						|
	public static $appClass = 'yii\web\Application'; | 
						|
 | 
						|
	/** | 
						|
	 * @inheritdoc | 
						|
	 */ | 
						|
	protected function setUp() | 
						|
	{ | 
						|
		parent::setUp(); | 
						|
		$this->mockApplication(); | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * @inheritdoc | 
						|
	 */ | 
						|
	protected function tearDown() | 
						|
	{ | 
						|
		$this->destroyApplication(); | 
						|
		parent::tearDown(); | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Mocks up the application instance. | 
						|
	 * @param array $config the configuration that should be used to generate the application instance. | 
						|
	 * If null, [[appConfig]] will be used. | 
						|
	 * @return \yii\web\Application|\yii\console\Application the application instance | 
						|
	 */ | 
						|
	protected function mockApplication($config = null) | 
						|
	{ | 
						|
		$config = $config === null ? static::$appConfig : $config; | 
						|
		if (is_string($config)) { | 
						|
			$config = Yii::getAlias($config); | 
						|
		} | 
						|
		if (!is_array($config)) { | 
						|
			throw new InvalidConfigException('Please provide a configuration for creating application.'); | 
						|
		} | 
						|
		return new static::$appClass($config); | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Destroys the application instance created by [[mockApplication]]. | 
						|
	 */ | 
						|
	protected function destroyApplication() | 
						|
	{ | 
						|
		Yii::$app = null; | 
						|
	} | 
						|
}
 | 
						|
 |