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.
		
		
		
		
		
			
		
			
				
					
					
						
							84 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							84 lines
						
					
					
						
							2.1 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace yiiunit\extensions\sphinx; | 
						|
 | 
						|
use yii\caching\FileCache; | 
						|
use yii\sphinx\Schema; | 
						|
 | 
						|
/** | 
						|
 * @group sphinx | 
						|
 */ | 
						|
class SchemaTest extends SphinxTestCase | 
						|
{ | 
						|
	public function testFindIndexNames() | 
						|
	{ | 
						|
		$schema = $this->getConnection()->schema; | 
						|
 | 
						|
		$indexes = $schema->getIndexNames(); | 
						|
		$this->assertContains('yii2_test_article_index', $indexes); | 
						|
		$this->assertContains('yii2_test_item_index', $indexes); | 
						|
		$this->assertContains('yii2_test_rt_index', $indexes); | 
						|
	} | 
						|
 | 
						|
	public function testGetIndexSchemas() | 
						|
	{ | 
						|
		$schema = $this->getConnection()->schema; | 
						|
 | 
						|
		$indexes = $schema->getIndexSchemas(); | 
						|
		$this->assertEquals(count($schema->getIndexNames()), count($indexes)); | 
						|
		foreach($indexes as $index) { | 
						|
			$this->assertInstanceOf('yii\sphinx\IndexSchema', $index); | 
						|
		} | 
						|
	} | 
						|
 | 
						|
	public function testGetNonExistingIndexSchema() | 
						|
	{ | 
						|
		$this->assertNull($this->getConnection()->schema->getIndexSchema('non_existing_index')); | 
						|
	} | 
						|
 | 
						|
	public function testSchemaRefresh() | 
						|
	{ | 
						|
		$schema = $this->getConnection()->schema; | 
						|
 | 
						|
		$schema->db->enableSchemaCache = true; | 
						|
		$schema->db->schemaCache = new FileCache(); | 
						|
		$noCacheIndex = $schema->getIndexSchema('yii2_test_rt_index', true); | 
						|
		$cachedIndex = $schema->getIndexSchema('yii2_test_rt_index', true); | 
						|
		$this->assertEquals($noCacheIndex, $cachedIndex); | 
						|
	} | 
						|
 | 
						|
	public function testGetPDOType() | 
						|
	{ | 
						|
		$values = [ | 
						|
			[null, \PDO::PARAM_NULL], | 
						|
			['', \PDO::PARAM_STR], | 
						|
			['hello', \PDO::PARAM_STR], | 
						|
			[0, \PDO::PARAM_INT], | 
						|
			[1, \PDO::PARAM_INT], | 
						|
			[1337, \PDO::PARAM_INT], | 
						|
			[true, \PDO::PARAM_BOOL], | 
						|
			[false, \PDO::PARAM_BOOL], | 
						|
			[$fp=fopen(__FILE__, 'rb'), \PDO::PARAM_LOB], | 
						|
		]; | 
						|
 | 
						|
		$schema = $this->getConnection()->schema; | 
						|
 | 
						|
		foreach($values as $value) { | 
						|
			$this->assertEquals($value[1], $schema->getPdoType($value[0])); | 
						|
		} | 
						|
		fclose($fp); | 
						|
	} | 
						|
 | 
						|
	public function testIndexType() | 
						|
	{ | 
						|
		$schema = $this->getConnection()->schema; | 
						|
 | 
						|
		$index = $schema->getIndexSchema('yii2_test_article_index'); | 
						|
		$this->assertEquals('local', $index->type); | 
						|
		$this->assertFalse($index->isRuntime); | 
						|
 | 
						|
		$index = $schema->getIndexSchema('yii2_test_rt_index'); | 
						|
		$this->assertEquals('rt', $index->type); | 
						|
		$this->assertTrue($index->isRuntime); | 
						|
	} | 
						|
} |