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

Reply via email to