[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Allow usage of a factory of WikiPageEntityRevisionLookups fo...
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/324439 ) Change subject: Allow usage of a factory of WikiPageEntityRevisionLookups for local repo .. Allow usage of a factory of WikiPageEntityRevisionLookups for local repo Factory class is renamed to RepositorySpecificEntityRevisionLookupFactory as it is no longer about foreign repositories only. Bug: T151997 Change-Id: I26310c08f66b98d80e76c31acd7b1af372d3b371 --- R lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php R lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php 2 files changed, 27 insertions(+), 15 deletions(-) Approvals: Daniel Kinzler: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/includes/Store/ForeignEntityRevisionLookupFactory.php b/lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php similarity index 89% rename from lib/includes/Store/ForeignEntityRevisionLookupFactory.php rename to lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php index 365f7fd..a66339f 100644 --- a/lib/includes/Store/ForeignEntityRevisionLookupFactory.php +++ b/lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php @@ -2,10 +2,8 @@ namespace Wikibase\Lib\Store; -use DataValues\Deserializers\DataValueDeserializer; use Serializers\Serializer; use Wikibase\DataModel\Assert\RepositoryNameAssert; -use Wikibase\DataModel\Entity\EntityIdParser; use Wikibase\DataModel\Services\EntityId\PrefixMappingEntityIdParserFactory; use Wikibase\DataModel\Services\Lookup\UnknownForeignRepositoryException; use Wikibase\InternalSerialization\DeserializerFactory; @@ -16,11 +14,11 @@ use Wikimedia\Assert\ParameterAssertionException; /** - * A factory providing the WikiPageEntityMetaDataLookup instance configured for the given foreign repository. + * A factory providing the WikiPageEntityRevisionLookup instance configured for the given repository. * * @license GPL-2.0+ */ -class ForeignEntityRevisionLookupFactory { +class RepositorySpecificEntityRevisionLookupFactory { /** * @var PrefixMappingEntityIdParserFactory @@ -76,9 +74,11 @@ $maxBlobSize, array $databaseNames ) { + Assert::parameter( !empty( $databaseNames ), '$databaseNames', 'must not be empty' ); + foreach ( $databaseNames as $name ) { + Assert::parameter( is_string( $name ) || $name === false, 'values of $databaseNames', 'must be either string or false' ); + } RepositoryNameAssert::assertParameterKeysAreValidRepositoryNames( $databaseNames, '$databaseNames' ); - Assert::parameterElementType( 'string', $databaseNames, '$databaseNames' ); - Assert::parameter( !array_key_exists( '', $databaseNames ), '$databaseNames', 'must not contain an empty string key' ); $this->parserFactory = $parserFactory; $this->entitySerializer = $entitySerializer; diff --git a/lib/tests/phpunit/Store/ForeignEntityRevisionLookupFactoryTest.php b/lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php similarity index 80% rename from lib/tests/phpunit/Store/ForeignEntityRevisionLookupFactoryTest.php rename to lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php index c990a46..d8588a7 100644 --- a/lib/tests/phpunit/Store/ForeignEntityRevisionLookupFactoryTest.php +++ b/lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php @@ -9,19 +9,19 @@ use Wikibase\DataModel\Services\Lookup\UnknownForeignRepositoryException; use Wikibase\Lib\Serialization\RepositorySpecificDataValueDeserializerFactory; use Wikibase\Lib\Store\EntityNamespaceLookup; -use Wikibase\Lib\Store\ForeignEntityRevisionLookupFactory; +use Wikibase\Lib\Store\RepositorySpecificEntityRevisionLookupFactory; use Wikibase\Lib\Store\WikiPageEntityRevisionLookup; use Wikimedia\Assert\ParameterAssertionException; /** - * @covers Wikibase\Lib\Store\ForeignEntityRevisionLookupFactory + * @covers Wikibase\Lib\Store\RepositorySpecificEntityRevisionLookupFactory * * @group Wikibase * @group WikibaseLib * * @license GPL-2.0+ */ -class ForeignEntityRevisionLookupFactoryTest extends \PHPUnit_Framework_TestCase { +class RepositorySpecificEntityRevisionLookupFactoryTest extends \PHPUnit_Framework_TestCase { /** * @return EntityIdParser @@ -70,8 +70,21 @@ return new EntityNamespaceLookup( [ 'item' => 100 ] ); } + public function testGivenLocalRepositoryAndDatabase_getLookupReturnsInstanceOfWikiPageEntityRevisionLookup() { + $factory = new RepositorySpecificEntityRevisionLookupFactory( + $this->getPrefixMappingEntityIdParserFactory(), +
[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Allow usage of a factory of WikiPageEntityRevisionLookups fo...
WMDE-leszek has uploaded a new change for review. https://gerrit.wikimedia.org/r/324439 Change subject: Allow usage of a factory of WikiPageEntityRevisionLookups for local repo .. Allow usage of a factory of WikiPageEntityRevisionLookups for local repo Factory class is renamed to RepositorySpecificEntityRevisionLookupFactory as it is no longer about foreign repositories only. Bug: T151997 Change-Id: I26310c08f66b98d80e76c31acd7b1af372d3b371 --- R lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php R lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php 2 files changed, 28 insertions(+), 13 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/39/324439/1 diff --git a/lib/includes/Store/ForeignEntityRevisionLookupFactory.php b/lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php similarity index 93% rename from lib/includes/Store/ForeignEntityRevisionLookupFactory.php rename to lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php index e74c417..0470fb9 100644 --- a/lib/includes/Store/ForeignEntityRevisionLookupFactory.php +++ b/lib/includes/Store/RepositorySpecificEntityRevisionLookupFactory.php @@ -19,11 +19,11 @@ use Wikimedia\Assert\ParameterAssertionException; /** - * A factory providing the WikiPageEntityRevisionLookup instance configured for the given foreign repository. + * A factory providing the WikiPageEntityRevisionLookup instance configured for the given repository. * * @license GPL-2.0+ */ -class ForeignEntityRevisionLookupFactory { +class RepositorySpecificEntityRevisionLookupFactory { /** * @var PrefixMappingEntityIdParserFactory @@ -86,9 +86,11 @@ $maxBlobSize, array $databaseNames ) { + Assert::parameter( !empty( $databaseNames ), '$databaseNames', 'must not be empty' ); + foreach ( $databaseNames as $name ) { + Assert::parameter( is_string( $name ) || $name === false, 'values of $databaseNames', 'must be either string or false' ); + } RepositoryNameAssert::assertParameterKeysAreValidRepositoryNames( $databaseNames, '$databaseNames' ); - Assert::parameterElementType( 'string', $databaseNames, '$databaseNames' ); - Assert::parameter( !array_key_exists( '', $databaseNames ), '$databaseNames', 'must not contain an empty string key' ); $this->parserFactory = $parserFactory; $this->entitySerializer = $entitySerializer; diff --git a/lib/tests/phpunit/Store/ForeignEntityRevisionLookupFactoryTest.php b/lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php similarity index 81% rename from lib/tests/phpunit/Store/ForeignEntityRevisionLookupFactoryTest.php rename to lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php index 3a2bfe3..b6aca00 100644 --- a/lib/tests/phpunit/Store/ForeignEntityRevisionLookupFactoryTest.php +++ b/lib/tests/phpunit/Store/RepositorySpecificEntityRevisionLookupFactoryTest.php @@ -10,19 +10,19 @@ use Wikibase\DataModel\Services\Lookup\UnknownForeignRepositoryException; use Wikibase\Lib\Serialization\RepositorySpecificDataValueDeserializerFactory; use Wikibase\Lib\Store\EntityNamespaceLookup; -use Wikibase\Lib\Store\ForeignEntityRevisionLookupFactory; +use Wikibase\Lib\Store\RepositorySpecificEntityRevisionLookupFactory; use Wikibase\Lib\Store\WikiPageEntityRevisionLookup; use Wikimedia\Assert\ParameterAssertionException; /** - * @covers Wikibase\Lib\Store\ForeignEntityRevisionLookupFactory + * @covers Wikibase\Lib\Store\RepositorySpecificEntityRevisionLookupFactory * * @group Wikibase * @group WikibaseLib * * @license GPL-2.0+ */ -class ForeignEntityRevisionLookupFactoryTest extends \PHPUnit_Framework_TestCase { +class RepositorySpecificEntityRevisionLookupFactoryTest extends \PHPUnit_Framework_TestCase { /** * @return EntityIdParser @@ -85,8 +85,22 @@ return new EntityNamespaceLookup( [ 'item' => 100 ] ); } + public function testGivenLocalRepositoryAndDatabase_getLookupReturnsInstanceOfWikiPageEntityRevisionLookup() { + $factory = new RepositorySpecificEntityRevisionLookupFactory( + $this->getPrefixMappingEntityIdParserFactory(), + $this->getEntitySerializer(), + $this->getDataValueDeserializerFactory(), + $this->getDeserializerFactoryCallbacks(), + $this->getEntityNamespaceLookup(), + 0, + [ '' => '' ] + ); + + $this->assertInstanceOf( WikiPageEntityRevisionLookup::class, $factory->getLookup( '' ) ); + } + public function