jenkins-bot has submitted this change and it was merged. Change subject: Add FieldRemovalFailedException and FieldAdditionFailedException ......................................................................
Add FieldRemovalFailedException and FieldAdditionFailedException Also fixes incorrect subclassing of QueryInterfaceException for exceptions no longer related to this interface. Change-Id: I25180498c5915cb8c51227f90151379622723b4b --- A src/Schema/FieldAdditionFailedException.php A src/Schema/FieldRemovalFailedException.php A src/Schema/SchemaModificationException.php M src/Schema/SchemaModifier.php M src/Schema/SimpleTableSchemaUpdater.php M src/Schema/TableCreationFailedException.php M src/Schema/TableDeletionFailedException.php R src/Schema/TableSchemaUpdateException.php M src/Schema/TableSchemaUpdater.php A tests/phpunit/Schema/FieldAdditionFailedExceptionTest.php A tests/phpunit/Schema/FieldRemovalFailedExceptionTest.php R tests/phpunit/Schema/TableSchemaUpdateExceptionTest.php 12 files changed, 174 insertions(+), 12 deletions(-) Approvals: Addshore: Looks good to me, approved jenkins-bot: Verified diff --git a/src/Schema/FieldAdditionFailedException.php b/src/Schema/FieldAdditionFailedException.php new file mode 100644 index 0000000..1969b4c --- /dev/null +++ b/src/Schema/FieldAdditionFailedException.php @@ -0,0 +1,32 @@ +<?php + +namespace Wikibase\Database\Schema; + +use Wikibase\Database\Schema\Definitions\FieldDefinition; + +/** + * @since 0.1 + * @licence GNU GPL v2+ + * @author Jeroen De Dauw < [email protected] > + */ +class FieldAdditionFailedException extends SchemaModificationException { + + protected $tableName; + protected $field; + + public function __construct( $tableName, FieldDefinition $field, $message = '', \Exception $previous = null ) { + parent::__construct( $message, 0, $previous ); + + $this->tableName = $tableName; + $this->field = $field; + } + + public function getTableName() { + return $this->tableName; + } + + public function getField() { + return $this->field; + } + +} \ No newline at end of file diff --git a/src/Schema/FieldRemovalFailedException.php b/src/Schema/FieldRemovalFailedException.php new file mode 100644 index 0000000..e141609 --- /dev/null +++ b/src/Schema/FieldRemovalFailedException.php @@ -0,0 +1,30 @@ +<?php + +namespace Wikibase\Database\Schema; + +/** + * @since 0.1 + * @licence GNU GPL v2+ + * @author Jeroen De Dauw < [email protected] > + */ +class FieldRemovalFailedException extends SchemaModificationException { + + protected $tableName; + protected $fieldName; + + public function __construct( $tableName, $fieldName, $message = '', \Exception $previous = null ) { + parent::__construct( $message, 0, $previous ); + + $this->tableName = $tableName; + $this->fieldName = $fieldName; + } + + public function getTableName() { + return $this->tableName; + } + + public function getFieldName() { + return $this->fieldName; + } + +} \ No newline at end of file diff --git a/src/Schema/SchemaModificationException.php b/src/Schema/SchemaModificationException.php new file mode 100644 index 0000000..04ee1f0 --- /dev/null +++ b/src/Schema/SchemaModificationException.php @@ -0,0 +1,12 @@ +<?php + +namespace Wikibase\Database\Schema; + +/** + * @since 0.1 + * @licence GNU GPL v2+ + * @author Jeroen De Dauw < [email protected] > + */ +class SchemaModificationException extends \Exception { + +} \ No newline at end of file diff --git a/src/Schema/SchemaModifier.php b/src/Schema/SchemaModifier.php index d2d3385..53fa89c 100644 --- a/src/Schema/SchemaModifier.php +++ b/src/Schema/SchemaModifier.php @@ -15,7 +15,7 @@ * @param string $tableName * @param string $fieldName * - * TODO: document throws + * @throws FieldRemovalFailedException */ public function removeField( $tableName, $fieldName ); @@ -23,7 +23,7 @@ * @param string $tableName * @param FieldDefinition $field * - * TODO: document throws + * @throws FieldAdditionFailedException */ public function addField( $tableName, FieldDefinition $field ); diff --git a/src/Schema/SimpleTableSchemaUpdater.php b/src/Schema/SimpleTableSchemaUpdater.php index 041bf35..8e28df6 100644 --- a/src/Schema/SimpleTableSchemaUpdater.php +++ b/src/Schema/SimpleTableSchemaUpdater.php @@ -24,7 +24,7 @@ * @param TableDefinition $currentTable * @param TableDefinition $newTable * - * @throws SchemaUpdateFailedException + * @throws TableSchemaUpdateException */ public function updateTable( TableDefinition $currentTable, TableDefinition $newTable ) { // TODO: assert same table diff --git a/src/Schema/TableCreationFailedException.php b/src/Schema/TableCreationFailedException.php index c83235d..0e9e0ce 100644 --- a/src/Schema/TableCreationFailedException.php +++ b/src/Schema/TableCreationFailedException.php @@ -10,7 +10,7 @@ * @licence GNU GPL v2+ * @author Jeroen De Dauw < [email protected] > */ -class TableCreationFailedException extends QueryInterfaceException { +class TableCreationFailedException extends SchemaModificationException { protected $table; diff --git a/src/Schema/TableDeletionFailedException.php b/src/Schema/TableDeletionFailedException.php index 413a733..508f7e6 100644 --- a/src/Schema/TableDeletionFailedException.php +++ b/src/Schema/TableDeletionFailedException.php @@ -10,7 +10,7 @@ * @licence GNU GPL v2+ * @author Jeroen De Dauw < [email protected] > */ -class TableDeletionFailedException extends QueryInterfaceException { +class TableDeletionFailedException extends SchemaModificationException { protected $tableName; diff --git a/src/Schema/SchemaUpdateFailedException.php b/src/Schema/TableSchemaUpdateException.php similarity index 84% rename from src/Schema/SchemaUpdateFailedException.php rename to src/Schema/TableSchemaUpdateException.php index cf441e9..a949a07 100644 --- a/src/Schema/SchemaUpdateFailedException.php +++ b/src/Schema/TableSchemaUpdateException.php @@ -7,7 +7,7 @@ * @licence GNU GPL v2+ * @author Jeroen De Dauw < [email protected] > */ -class SchemaUpdateFailedException extends \Exception { +class TableSchemaUpdateException extends \Exception { public function __construct( $message = '', \Exception $previous = null ) { parent::__construct( $message, 0, $previous ); diff --git a/src/Schema/TableSchemaUpdater.php b/src/Schema/TableSchemaUpdater.php index 2f441b6..63a4f32 100644 --- a/src/Schema/TableSchemaUpdater.php +++ b/src/Schema/TableSchemaUpdater.php @@ -17,7 +17,7 @@ * @param TableDefinition $currentTable * @param TableDefinition $newTable * - * @throws SchemaUpdateFailedException + * @throws TableSchemaUpdateException */ public function updateTable( TableDefinition $currentTable, TableDefinition $newTable ); diff --git a/tests/phpunit/Schema/FieldAdditionFailedExceptionTest.php b/tests/phpunit/Schema/FieldAdditionFailedExceptionTest.php new file mode 100644 index 0000000..5b24330 --- /dev/null +++ b/tests/phpunit/Schema/FieldAdditionFailedExceptionTest.php @@ -0,0 +1,45 @@ +<?php + +namespace Wikibase\Database\Tests\Schema; + +use Wikibase\Database\Schema\FieldAdditionFailedException; + +/** + * @covers Wikibase\Database\Schema\FieldAdditionFailedException + * + * @group Wikibase + * @group WikibaseDatabase + * + * @licence GNU GPL v2+ + * @author Jeroen De Dauw < [email protected] > + */ +class FieldAdditionFailedExceptionTest extends \PHPUnit_Framework_TestCase { + + public function testConstructorWithJustATable() { + $tableName = 'users'; + $field = $this->getMockBuilder( 'Wikibase\Database\Schema\Definitions\FieldDefinition' ) + ->disableOriginalConstructor()->getMock(); + + $exception = new FieldAdditionFailedException( $tableName, $field ); + + $this->assertEquals( $tableName, $exception->getTableName() ); + $this->assertEquals( $field, $exception->getField() ); + } + + public function testConstructorWithAllArguments() { + $tableName = 'users'; + $field = $this->getMockBuilder( 'Wikibase\Database\Schema\Definitions\FieldDefinition' ) + ->disableOriginalConstructor()->getMock(); + + $message = 'NyanData all the way accross the sky!'; + $previous = new \Exception( 'Onoez!' ); + + $exception = new FieldAdditionFailedException( $tableName, $field, $message, $previous ); + + $this->assertEquals( $tableName, $exception->getTableName() ); + $this->assertEquals( $field, $exception->getField() ); + $this->assertEquals( $message, $exception->getMessage() ); + $this->assertEquals( $previous, $exception->getPrevious() ); + } + +} diff --git a/tests/phpunit/Schema/FieldRemovalFailedExceptionTest.php b/tests/phpunit/Schema/FieldRemovalFailedExceptionTest.php new file mode 100644 index 0000000..09f35b6 --- /dev/null +++ b/tests/phpunit/Schema/FieldRemovalFailedExceptionTest.php @@ -0,0 +1,43 @@ +<?php + +namespace Wikibase\Database\Tests\Schema; + +use Wikibase\Database\Schema\FieldRemovalFailedException; + +/** + * @covers Wikibase\Database\Schema\FieldRemovalFailedException + * + * @group Wikibase + * @group WikibaseDatabase + * + * @licence GNU GPL v2+ + * @author Jeroen De Dauw < [email protected] > + */ +class FieldRemovalFailedExceptionTest extends \PHPUnit_Framework_TestCase { + + public function testConstructorWithJustATable() { + $tableName = 'users'; + $fieldName = 'btc'; + + $exception = new FieldRemovalFailedException( $tableName, $fieldName ); + + $this->assertEquals( $tableName, $exception->getTableName() ); + $this->assertEquals( $fieldName, $exception->getFieldName() ); + } + + public function testConstructorWithAllArguments() { + $tableName = 'users'; + $fieldName = 'btc'; + + $message = 'NyanData all the way accross the sky!'; + $previous = new \Exception( 'Onoez!' ); + + $exception = new FieldRemovalFailedException( $tableName, $fieldName, $message, $previous ); + + $this->assertEquals( $tableName, $exception->getTableName() ); + $this->assertEquals( $fieldName, $exception->getFieldName() ); + $this->assertEquals( $message, $exception->getMessage() ); + $this->assertEquals( $previous, $exception->getPrevious() ); + } + +} diff --git a/tests/phpunit/Schema/SchemaUpdateFailedExceptionTest.php b/tests/phpunit/Schema/TableSchemaUpdateExceptionTest.php similarity index 64% rename from tests/phpunit/Schema/SchemaUpdateFailedExceptionTest.php rename to tests/phpunit/Schema/TableSchemaUpdateExceptionTest.php index b443a9a..f2c87a7 100644 --- a/tests/phpunit/Schema/SchemaUpdateFailedExceptionTest.php +++ b/tests/phpunit/Schema/TableSchemaUpdateExceptionTest.php @@ -2,10 +2,10 @@ namespace Wikibase\Database\Tests\Schema; -use Wikibase\Database\Schema\SchemaUpdateFailedException; +use Wikibase\Database\Schema\TableSchemaUpdateException; /** - * @covers Wikibase\Database\Schema\SchemaUpdateFailedException + * @covers Wikibase\Database\Schema\TableSchemaUpdateException * * @group Wikibase * @group WikibaseDatabase @@ -13,10 +13,10 @@ * @licence GNU GPL v2+ * @author Jeroen De Dauw < [email protected] > */ -class SchemaUpdateFailedExceptionTest extends \PHPUnit_Framework_TestCase { +class TableSchemaUpdateExceptionTest extends \PHPUnit_Framework_TestCase { public function testConstructorWithOnlyRequiredArguments() { - $exception = new SchemaUpdateFailedException(); + new TableSchemaUpdateException(); $this->assertTrue( true ); } @@ -24,7 +24,7 @@ $message = 'NyanData all the way accross the sky!'; $previous = new \Exception( 'Onoez!' ); - $exception = new SchemaUpdateFailedException( $message, $previous ); + $exception = new TableSchemaUpdateException( $message, $previous ); $this->assertEquals( $message, $exception->getMessage() ); $this->assertEquals( $previous, $exception->getPrevious() ); -- To view, visit https://gerrit.wikimedia.org/r/87555 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I25180498c5915cb8c51227f90151379622723b4b Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/WikibaseDatabase Gerrit-Branch: master Gerrit-Owner: Jeroen De Dauw <[email protected]> Gerrit-Reviewer: Addshore <[email protected]> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
