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.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							1.4 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace yiiunit\extensions\elasticsearch; | 
						|
 | 
						|
use Yii; | 
						|
use yii\elasticsearch\Connection; | 
						|
use yii\elasticsearch\GuzzleConnection; | 
						|
use yiiunit\TestCase; | 
						|
 | 
						|
Yii::setAlias('@yii/elasticsearch', __DIR__ . '/../../../../extensions/elasticsearch'); | 
						|
 | 
						|
/** | 
						|
 * ElasticSearchTestCase is the base class for all elasticsearch related test cases | 
						|
 */ | 
						|
class ElasticSearchTestCase extends TestCase | 
						|
{ | 
						|
	protected function setUp() | 
						|
	{ | 
						|
		$this->mockApplication(); | 
						|
 | 
						|
		$databases = $this->getParam('databases'); | 
						|
		$params = isset($databases['elasticsearch']) ? $databases['elasticsearch'] : null; | 
						|
		if ($params === null || !isset($params['dsn'])) { | 
						|
			$this->markTestSkipped('No elasticsearch server connection configured.'); | 
						|
		} | 
						|
		$dsn = explode('/', $params['dsn']); | 
						|
		$host = $dsn[2]; | 
						|
		if (strpos($host, ':')===false) { | 
						|
			$host .= ':9200'; | 
						|
		} | 
						|
		if(!@stream_socket_client($host, $errorNumber, $errorDescription, 0.5)) { | 
						|
			$this->markTestSkipped('No elasticsearch server running at ' . $params['dsn'] . ' : ' . $errorNumber . ' - ' . $errorDescription); | 
						|
		} | 
						|
 | 
						|
		parent::setUp(); | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * @param bool $reset whether to clean up the test database | 
						|
	 * @return Connection | 
						|
	 */ | 
						|
	public function getConnection($reset = true) | 
						|
	{ | 
						|
		$databases = $this->getParam('databases'); | 
						|
		$params = isset($databases['elasticsearch']) ? $databases['elasticsearch'] : array(); | 
						|
		$db = new GuzzleConnection(); | 
						|
		if ($reset) { | 
						|
			$db->open(); | 
						|
		} | 
						|
		return $db; | 
						|
	} | 
						|
} |