[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Allow usage of a factory of WikiPageEntityRevisionLookups fo...

2016-12-13 Thread jenkins-bot (Code Review)
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...

2016-11-30 Thread WMDE-leszek (Code Review)
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