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(), + $this->getEntitySerializer(), + $this->getDataValueDeserializerFactory(), + $this->getEntityNamespaceLookup(), + 0, + [ '' => '' ] + ); + + $this->assertInstanceOf( WikiPageEntityRevisionLookup::class, $factory->getLookup( '' ) ); + } + public function testGivenKnownRepository_getLookupReturnsInstanceOfWikiPageEntityRevisionLookup() { - $factory = new ForeignEntityRevisionLookupFactory( + $factory = new RepositorySpecificEntityRevisionLookupFactory( $this->getPrefixMappingEntityIdParserFactory(), $this->getEntitySerializer(), $this->getDataValueDeserializerFactory(), @@ -84,7 +97,7 @@ } public function testGivenUnknownRepository_getLookupThrowsException() { - $factory = new ForeignEntityRevisionLookupFactory( + $factory = new RepositorySpecificEntityRevisionLookupFactory( $this->getPrefixMappingEntityIdParserFactory(), $this->getEntitySerializer(), $this->getDataValueDeserializerFactory(), @@ -99,7 +112,7 @@ } public function testGetLookupReusesTheInstanceOverMultipleCalls() { - $factory = new ForeignEntityRevisionLookupFactory( + $factory = new RepositorySpecificEntityRevisionLookupFactory( $this->getPrefixMappingEntityIdParserFactory(), $this->getEntitySerializer(), $this->getDataValueDeserializerFactory(), @@ -116,10 +129,9 @@ public function provideInvalidDatabaseNamesValue() { return [ + 'empty list' => [ [] ], 'repository name containing a colon' => [ [ 'fo:o' => 'foodb' ] ], - 'providing database name for local repository' => [ [ '' => 'foodb' ] ], 'non-string key' => [ [ 0 => 'foodb' ] ], - 'not a string as a database name (false)' => [ [ 'foo' => false ] ], 'not a string as a database name (true)' => [ [ 'foo' => true ] ], 'not a string as a database name (null)' => [ [ 'foo' => null ] ], 'not a string as a database name (int)' => [ [ 'foo' => 100 ] ], @@ -132,7 +144,7 @@ public function testGivenInvalidDatabaseNamesValue_exceptionIsThrown( array $databaseNames ) { $this->setExpectedException( ParameterAssertionException::class ); - new ForeignEntityRevisionLookupFactory( + new RepositorySpecificEntityRevisionLookupFactory( $this->getPrefixMappingEntityIdParserFactory(), $this->getEntitySerializer(), $this->getDataValueDeserializerFactory(), -- To view, visit https://gerrit.wikimedia.org/r/324439 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I26310c08f66b98d80e76c31acd7b1af372d3b371 Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: WMDE-leszek <leszek.mani...@wikimedia.de> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: WMDE-leszek <leszek.mani...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits