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.
		
		
		
		
		
			
		
			
				
					
					
						
							50 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							50 lines
						
					
					
						
							1.3 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace yiiunit\extensions\swiftmailer; | 
						|
 | 
						|
use yii\helpers\ArrayHelper; | 
						|
 | 
						|
abstract class TestCase extends \PHPUnit\Framework\TestCase | 
						|
{ | 
						|
    /** | 
						|
     * Clean up after test. | 
						|
     * By default the application created with [[mockApplication]] will be destroyed. | 
						|
     */ | 
						|
    protected function tearDown() | 
						|
    { | 
						|
        parent::tearDown(); | 
						|
        $this->destroyApplication(); | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Populates Yii::$app with a new application | 
						|
     * The application will be destroyed on tearDown() automatically. | 
						|
     * @param array $config The application configuration, if needed | 
						|
     * @param string $appClass name of the application class to create | 
						|
     */ | 
						|
    protected function mockApplication($config = [], $appClass = '\yii\console\Application') | 
						|
    { | 
						|
        new $appClass(ArrayHelper::merge([ | 
						|
            'id' => 'testapp', | 
						|
            'basePath' => __DIR__, | 
						|
            'vendorPath' => $this->getVendorPath(), | 
						|
        ], $config)); | 
						|
    } | 
						|
 | 
						|
    protected function getVendorPath() | 
						|
    { | 
						|
        $vendor = dirname(dirname(__DIR__)) . '/vendor'; | 
						|
        if (!is_dir($vendor)) { | 
						|
            $vendor = dirname(dirname(dirname(dirname(__DIR__)))); | 
						|
        } | 
						|
        return $vendor; | 
						|
    } | 
						|
 | 
						|
    /** | 
						|
     * Destroys application in Yii::$app by setting it to null. | 
						|
     */ | 
						|
    protected function destroyApplication() | 
						|
    { | 
						|
        \Yii::$app = null; | 
						|
    } | 
						|
}
 | 
						|
 |