Addshore has uploaded a new change for review.
https://gerrit.wikimedia.org/r/89704
Change subject: Add unit test for MediaWikiSchemaModifierBuilder
......................................................................
Add unit test for MediaWikiSchemaModifierBuilder
Change-Id: I87948667e67c74dca252005710ae31bbcd4eb556
---
A tests/phpunit/MediaWiki/MediaWikiSchemaModifierBuilderTest.php
1 file changed, 94 insertions(+), 0 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseDatabase
refs/changes/04/89704/1
diff --git a/tests/phpunit/MediaWiki/MediaWikiSchemaModifierBuilderTest.php
b/tests/phpunit/MediaWiki/MediaWikiSchemaModifierBuilderTest.php
new file mode 100644
index 0000000..0b4b4a4
--- /dev/null
+++ b/tests/phpunit/MediaWiki/MediaWikiSchemaModifierBuilderTest.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace Wikibase\Database\Tests\MediaWiki;
+
+use Wikibase\Database\MediaWiki\MediaWikiSchemaModifierBuilder;
+
+/**
+ * @covers Wikibase\Database\MediaWiki\MediaWikiSchemaModifierBuilder
+ *
+ * @group Wikibase
+ * @group WikibaseDatabase
+ * @group WikibaseDatabaseMediawiki
+ *
+ * @licence GNU GPL v2+
+ * @author Adam Shorland
+ */
+class MediaWikiSchemaModifierBuilderTest extends \PHPUnit_Framework_TestCase {
+
+ public function testCanConstruct() {
+ new MediaWikiSchemaModifierBuilder();
+ $this->assertTrue( true );
+ }
+
+ public function testSetConnectionReturnsThis() {
+ $builder = new MediaWikiSchemaModifierBuilder();
+
+ $returnValue = $builder->setConnection( $this->getMock(
'Wikibase\Database\DBConnectionProvider' ) );
+
+ $this->assertSame( $builder, $returnValue );
+ }
+
+ public function testSetQueryInterfaceReturnsThis() {
+ $builder = new MediaWikiSchemaModifierBuilder();
+
+ $mockQueryInterface = $this->getMockBuilder(
'Wikibase\Database\MediaWiki\MediaWikiQueryInterface' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $returnValue = $builder->setQueryInterface( $mockQueryInterface
);
+
+ $this->assertSame( $builder, $returnValue );
+ }
+
+ public function testGetSchemaModifier(){
+ $connection = $this->getMock( 'DatabaseMysql' );
+
+ $connection->expects( $this->once() )
+ ->method( 'getType' )
+ ->will( $this->returnValue( 'mysql' ) );
+
+ $connectionProvider = $this->getMock(
'Wikibase\Database\DBConnectionProvider' );
+
+ $connectionProvider->expects( $this->atLeastOnce() )
+ ->method( 'getConnection' )
+ ->will( $this->returnValue( $connection ) );
+
+ $queryInterface = $this->getMock(
'Wikibase\Database\QueryInterface\QueryInterface' );
+
+ $builder = new MediaWikiSchemaModifierBuilder();
+
+ $schemaModifier = $builder
+ ->setConnection( $connectionProvider )
+ ->setQueryInterface( $queryInterface )
+ ->getSchemaModifier();
+
+ $this->assertInstanceOf(
'Wikibase\Database\Schema\SchemaModifier', $schemaModifier );
+ }
+
+ public function testUnsupportedDbType(){
+ $this->setExpectedException( 'RuntimeException', 'Cannot build
a MediaWikiSchemaModifier for database type' );
+
+ $connection = $this->getMock( 'DatabaseMysql' );
+ $connection->expects( $this->once() )
+ ->method( 'getType' )
+ ->will( $this->returnValue( 'foobar' ) );
+
+ $connectionProvider = $this->getMock(
'Wikibase\Database\DBConnectionProvider' );
+ $connectionProvider->expects( $this->atLeastOnce() )
+ ->method( 'getConnection' )
+ ->will( $this->returnValue( $connection ) );
+
+ $queryInterface = $this->getMockBuilder(
'Wikibase\Database\MediaWiki\MediaWikiQueryInterface' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $builder = new MediaWikiSchemaModifierBuilder();
+
+ $builder
+ ->setConnection( $connectionProvider )
+ ->setQueryInterface( $queryInterface )
+ ->getSchemaModifier();
+ }
+
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/89704
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I87948667e67c74dca252005710ae31bbcd4eb556
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseDatabase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits