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); | |
| 	} | |
| } |