Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/88053


Change subject: Add logic and tests for getRemoveIndexSql
......................................................................

Add logic and tests for getRemoveIndexSql

Change-Id: Ifbca2d9f98f73e66740e1126c76283511fdf2745
---
M src/MySQL/MySQLSchemaSqlBuilder.php
M src/SQLite/SQLiteSchemaSqlBuilder.php
M tests/phpunit/MySQL/MySQLSchemaSqlBuilderTest.php
M tests/phpunit/SQLite/SQLiteSchemaSqlBuilderTest.php
4 files changed, 22 insertions(+), 4 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseDatabase 
refs/changes/53/88053/1

diff --git a/src/MySQL/MySQLSchemaSqlBuilder.php 
b/src/MySQL/MySQLSchemaSqlBuilder.php
index a4f0c94..30c0ab1 100644
--- a/src/MySQL/MySQLSchemaSqlBuilder.php
+++ b/src/MySQL/MySQLSchemaSqlBuilder.php
@@ -56,7 +56,8 @@
         * @return string
         */
        public function getRemoveIndexSql( $tableName, $indexName ){
-               //TODO
+               $tableName = $this->tableNameFormatter->formatTableName( 
$tableName );
+               return "DROP INDEX {$indexName} ON {$tableName}";
        }
 
        /**
diff --git a/src/SQLite/SQLiteSchemaSqlBuilder.php 
b/src/SQLite/SQLiteSchemaSqlBuilder.php
index 003091a..564b8fa 100644
--- a/src/SQLite/SQLiteSchemaSqlBuilder.php
+++ b/src/SQLite/SQLiteSchemaSqlBuilder.php
@@ -86,7 +86,8 @@
         * @return string
         */
        public function getRemoveIndexSql( $tableName, $indexName ){
-               //TODO
+               $tableName = $this->tableNameFormatter->formatTableName( 
$tableName );
+               return "DROP INDEX IF EXISTS {$tableName}.{$indexName}";
        }
 
        /**
diff --git a/tests/phpunit/MySQL/MySQLSchemaSqlBuilderTest.php 
b/tests/phpunit/MySQL/MySQLSchemaSqlBuilderTest.php
index 1094833..7580d98 100644
--- a/tests/phpunit/MySQL/MySQLSchemaSqlBuilderTest.php
+++ b/tests/phpunit/MySQL/MySQLSchemaSqlBuilderTest.php
@@ -44,4 +44,10 @@
                $this->assertEquals( 'ALTER TABLE tableName ADD intField INT 
DEFAULT 42 NOT NULL', $sql );
        }
 
+       public function testGetRemoveIndexSql(){
+               $instance = $this->newInstance();
+               $sql = $instance->getRemoveIndexSql( 'tableName', 'indexName' );
+               $this->assertEquals( "DROP INDEX indexName ON tableName", $sql 
);
+       }
+
 }
\ No newline at end of file
diff --git a/tests/phpunit/SQLite/SQLiteSchemaSqlBuilderTest.php 
b/tests/phpunit/SQLite/SQLiteSchemaSqlBuilderTest.php
index 48cab7a..57d7f58 100644
--- a/tests/phpunit/SQLite/SQLiteSchemaSqlBuilderTest.php
+++ b/tests/phpunit/SQLite/SQLiteSchemaSqlBuilderTest.php
@@ -19,7 +19,7 @@
  */
 class SQLiteSchemaSqlBuilderTest extends \PHPUnit_Framework_TestCase {
 
-       private function newInstance( $existingDefinition ) {
+       private function newInstance( $existingDefinition = null ) {
                $mockEscaper = $this->getMock( 'Wikibase\Database\Escaper' );
                $mockEscaper->expects( $this->any() )
                        ->method( 'getEscapedValue' )
@@ -34,7 +34,7 @@
                        ->getMockBuilder( 
'Wikibase\Database\SQLite\SQLiteTableDefinitionReader' )
                        ->disableOriginalConstructor()
                        ->getMock();
-               $mockQueryInterface->expects( $this->atLeastOnce() )
+               $mockQueryInterface->expects( $this->any() )
                        ->method( 'readDefinition' )
                        ->will( $this->returnValue( $existingDefinition ) );
 
@@ -70,4 +70,14 @@
                $this->assertEquals( 'ALTER TABLE tableName RENAME TO 
tableName_tmp;CREATE TABLE tableName (primaryField INT NOT NULL, intField INT 
DEFAULT 42 NOT NULL);CREATE INDEX INDEX ON tableName 
(intField,primaryField);INSERT INTO tableName(primaryField, intField) SELECT 
primaryField, intField FROM tableName_tmp;DROP TABLE tableName_tmp;', $sql );
        }
 
+       public function testGetRemoveFieldSql(){
+               $this->markTestIncomplete( 'testme!' ); //TODO complete the 
test!
+       }
+
+       public function testGetRemoveIndexSql(){
+               $instance = $this->newInstance( );
+               $sql = $instance->getRemoveIndexSql( 'tableName', 'textField' );
+               $this->assertEquals( "DROP INDEX IF EXISTS 
tableName.textField", $sql );
+       }
+
 }
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/88053
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifbca2d9f98f73e66740e1126c76283511fdf2745
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseDatabase
Gerrit-Branch: master
Gerrit-Owner: Addshore <addshorew...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to