jenkins-bot has submitted this change and it was merged. Change subject: Pass TermLookup, not EntityLookup into WikibaseValueFormattersBuilders ......................................................................
Pass TermLookup, not EntityLookup into WikibaseValueFormattersBuilders Change-Id: I5ff3d9f96f9496866a4026939b01cf59e9cd5592 --- M client/includes/WikibaseClient.php M lib/includes/formatters/WikibaseValueFormatterBuilders.php M lib/tests/phpunit/formatters/WikibaseSnakFormatterBuildersTest.php M lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php M repo/includes/WikibaseRepo.php 5 files changed, 45 insertions(+), 28 deletions(-) Approvals: Daniel Kinzler: Looks good to me, approved jenkins-bot: Verified diff --git a/client/includes/WikibaseClient.php b/client/includes/WikibaseClient.php index 5c1cbcf..7ed0f92 100644 --- a/client/includes/WikibaseClient.php +++ b/client/includes/WikibaseClient.php @@ -45,6 +45,7 @@ use Wikibase\Lib\Serializers\ForbiddenSerializer; use Wikibase\Lib\Store\EntityContentDataCodec; use Wikibase\Lib\Store\EntityLookup; +use Wikibase\Lib\Store\EntityRetrievingTermLookup; use Wikibase\Lib\WikibaseDataTypeBuilders; use Wikibase\Lib\WikibaseSnakFormatterBuilders; use Wikibase\Lib\WikibaseValueFormatterBuilders; @@ -200,6 +201,13 @@ */ private function getEntityLookup() { return $this->getStore()->getEntityLookup(); + } + + /** + * @return TermLookup + */ + private function getTermLookup() { + return new EntityRetrievingTermLookup( $this->getEntityLookup() ); } /** @@ -465,7 +473,7 @@ */ private function newSnakFormatterFactory() { $valueFormatterBuilders = new WikibaseValueFormatterBuilders( - $this->getEntityLookup(), + $this->getTermLookup(), $this->contentLanguage ); @@ -497,7 +505,7 @@ */ private function newValueFormatterFactory() { $builders = new WikibaseValueFormatterBuilders( - $this->getEntityLookup(), + $this->getTermLookup(), $this->contentLanguage ); diff --git a/lib/includes/formatters/WikibaseValueFormatterBuilders.php b/lib/includes/formatters/WikibaseValueFormatterBuilders.php index 5596a21..df49be9 100644 --- a/lib/includes/formatters/WikibaseValueFormatterBuilders.php +++ b/lib/includes/formatters/WikibaseValueFormatterBuilders.php @@ -13,8 +13,7 @@ use ValueFormatters\ValueFormatter; use Wikibase\LanguageFallbackChain; use Wikibase\LanguageFallbackChainFactory; -use Wikibase\Lib\Store\EntityLookup; -use Wikibase\Lib\Store\EntityRetrievingTermLookup; +use Wikibase\Lib\Store\TermLookup; use Wikibase\Lib\Store\EntityTitleLookup; use Wikibase\Lib\Store\LanguageFallbackLabelLookup; use Wikibase\Lib\Store\LanguageLabelLookup; @@ -30,9 +29,9 @@ class WikibaseValueFormatterBuilders { /** - * @var EntityLookup + * @var TermLookup */ - private $entityLookup; + private $termLookup; /** * @var Language @@ -112,11 +111,11 @@ ); public function __construct( - EntityLookup $entityLookup, + TermLookup $termLookup, Language $defaultLanguage, EntityTitleLookup $entityTitleLookup = null ) { - $this->entityLookup = $entityLookup; + $this->termLookup = $termLookup; $this->defaultLanguage = $defaultLanguage; $this->entityTitleLookup = $entityTitleLookup; } @@ -509,7 +508,7 @@ FormatterOptions $options, WikibaseValueFormatterBuilders $builders ) { - $termLookup = new EntityRetrievingTermLookup( $builders->entityLookup ); + $termLookup = $builders->termLookup; // @fixme inject the label lookup if ( $options->hasOption( 'languages' ) ) { diff --git a/lib/tests/phpunit/formatters/WikibaseSnakFormatterBuildersTest.php b/lib/tests/phpunit/formatters/WikibaseSnakFormatterBuildersTest.php index 073e35d..b31e20e 100644 --- a/lib/tests/phpunit/formatters/WikibaseSnakFormatterBuildersTest.php +++ b/lib/tests/phpunit/formatters/WikibaseSnakFormatterBuildersTest.php @@ -57,18 +57,14 @@ return new DataType( $id, $typeMap[$id], array() ); } ) ); - $entity = EntityFactory::singleton()->newEmpty( $entityId->getEntityType() ); - $entity->setId( $entityId ); - $entity->setLabel( 'en', 'Label for ' . $entityId->getSerialization() ); - - $entityLookup = $this->getMock( 'Wikibase\Lib\Store\EntityLookup' ); - $entityLookup->expects( $this->any() ) - ->method( 'getEntity' ) - ->will( $this->returnValue( $entity ) ); + $termLookup = $this->getMock( 'Wikibase\Lib\Store\TermLookup' ); + $termLookup->expects( $this->any() ) + ->method( 'getLabels' ) + ->will( $this->returnValue( array( 'en' => 'Label for ' . $entityId->getSerialization() ) ) ); $lang = Language::factory( 'en' ); - $valueFormatterBuilders = new WikibaseValueFormatterBuilders( $entityLookup, $lang ); + $valueFormatterBuilders = new WikibaseValueFormatterBuilders( $termLookup, $lang ); return new WikibaseSnakFormatterBuilders( $valueFormatterBuilders, $typeLookup, $typeFactory ); } diff --git a/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php b/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php index fca38bf..4b36810 100644 --- a/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php +++ b/lib/tests/phpunit/formatters/WikibaseValueFormatterBuildersTest.php @@ -45,16 +45,12 @@ * @return WikibaseValueFormatterBuilders */ private function newWikibaseValueFormatterBuilders( EntityId $entityId ) { - $entity = EntityFactory::singleton()->newEmpty( $entityId->getEntityType() ); - $entity->setId( $entityId ); - $entity->setLabel( 'en', 'Label for ' . $entityId->getSerialization() ); + $termLookup = $this->getMock( 'Wikibase\Lib\Store\TermLookup' ); + $termLookup->expects( $this->any() ) + ->method( 'getLabel' ) + ->will( $this->returnValue( 'Label for ' . $entityId->getSerialization() ) ); - $entityLookup = $this->getMock( 'Wikibase\Lib\Store\EntityLookup' ); - $entityLookup->expects( $this->any() ) - ->method( 'getEntity' ) - ->will( $this->returnValue( $entity ) ); - - return new WikibaseValueFormatterBuilders( $entityLookup, Language::factory( 'en' ) ); + return new WikibaseValueFormatterBuilders( $termLookup, Language::factory( 'en' ) ); } private function newFormatterOptions( $lang = 'en' ) { diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php index 0daed7a..d4f19b9 100644 --- a/repo/includes/WikibaseRepo.php +++ b/repo/includes/WikibaseRepo.php @@ -47,8 +47,10 @@ use Wikibase\Lib\SnakFormatter; use Wikibase\Lib\Store\EntityContentDataCodec; use Wikibase\Lib\Store\EntityLookup; +use Wikibase\Lib\Store\EntityRetrievingTermLookup; use Wikibase\Lib\Store\EntityTitleLookup; use Wikibase\Lib\Store\LanguageLabelLookup; +use Wikibase\Lib\Store\TermLookup; use Wikibase\Lib\WikibaseDataTypeBuilders; use Wikibase\Lib\WikibaseSnakFormatterBuilders; use Wikibase\Lib\WikibaseValueFormatterBuilders; @@ -485,13 +487,29 @@ } /** + * @return TermLookup + */ + public function getTermLookup() { + return new EntityRetrievingTermLookup( $this->getEntityLookup() ); + } + + /** * @return WikibaseValueFormatterBuilders */ public function getValueFormatterBuilders() { + return $this->getValueFormatterBuildersForTermLookup( + $this->getTermLookup() + ); + } + + /** + * @return WikibaseValueFormatterBuilders + */ + public function getValueFormatterBuildersForTermLookup( TermLookup $termLookup ) { global $wgContLang; return new WikibaseValueFormatterBuilders( - $this->getEntityLookup(), + $termLookup, $wgContLang, $this->getEntityTitleLookup() ); -- To view, visit https://gerrit.wikimedia.org/r/175959 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I5ff3d9f96f9496866a4026939b01cf59e9cd5592 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Lang <adrian.l...@wikimedia.de> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits