jenkins-bot has submitted this change and it was merged. Change subject: Have insert in QueryInterface throw an exception rather then returning a boolean ......................................................................
Have insert in QueryInterface throw an exception rather then returning a boolean Change-Id: I244983421b62e78658bfd726e704922ec68646f4 --- M Database/includes/MediaWikiQueryInterface.php M Database/includes/QueryInterface.php M Database/tests/phpunit/MediaWikiQueryInterfaceTest.php 3 files changed, 34 insertions(+), 5 deletions(-) Approvals: Denny Vrandecic: Looks good to me, approved jenkins-bot: Verified diff --git a/Database/includes/MediaWikiQueryInterface.php b/Database/includes/MediaWikiQueryInterface.php index 306da96..d0c0026 100644 --- a/Database/includes/MediaWikiQueryInterface.php +++ b/Database/includes/MediaWikiQueryInterface.php @@ -113,14 +113,18 @@ * @param string $tableName * @param array $values * - * @return boolean Success indicator + * @throws InsertFailedException */ public function insert( $tableName, array $values ) { - return $this->getDB()->insert( + $success = $this->getDB()->insert( $tableName, $values, __METHOD__ ) !== false; + + if ( !$success ) { + throw new InsertFailedException( $tableName, $values ); + } } /** diff --git a/Database/includes/QueryInterface.php b/Database/includes/QueryInterface.php index add6206..647c205 100644 --- a/Database/includes/QueryInterface.php +++ b/Database/includes/QueryInterface.php @@ -74,8 +74,7 @@ * @param string $tableName * @param array $values * - * @return boolean Success indicator - * TODO: change to exception + * @throws InsertFailedException */ public function insert( $tableName, array $values ); diff --git a/Database/tests/phpunit/MediaWikiQueryInterfaceTest.php b/Database/tests/phpunit/MediaWikiQueryInterfaceTest.php index 0041288..94ee771 100644 --- a/Database/tests/phpunit/MediaWikiQueryInterfaceTest.php +++ b/Database/tests/phpunit/MediaWikiQueryInterfaceTest.php @@ -202,7 +202,33 @@ ->with( $this->equalTo( $tableName ), $this->equalTo( $fieldValues ) - ); + ) + ->will( $this->returnValue( true ) ); + + $queryInterface->insert( + $tableName, + $fieldValues + ); + } + + /** + * @dataProvider insertProvider + */ + public function testInsertFailure( $tableName, array $fieldValues ) { + $connection = $this->getMock( 'DatabaseMysql' ); + $extendedAbstraction = $this->getMockBuilder( '\Wikibase\Database\MWDB\ExtendedMySQLAbstraction' ) + ->disableOriginalConstructor()->getMock(); + + $queryInterface = new MediaWikiQueryInterface( + new DirectConnectionProvider( $connection ), + $extendedAbstraction + ); + + $connection->expects( $this->once() ) + ->method( 'insert' ) + ->will( $this->returnValue( false ) ); + + $this->setExpectedException( '\Wikibase\Database\InsertFailedException' ); $queryInterface->insert( $tableName, -- To view, visit https://gerrit.wikimedia.org/r/64940 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I244983421b62e78658bfd726e704922ec68646f4 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Jeroen De Dauw <jeroended...@gmail.com> Gerrit-Reviewer: Denny Vrandecic <denny.vrande...@wikimedia.de> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits