jenkins-bot has submitted this change and it was merged.
Change subject: Check if property exists in PropertyIdResolver
......................................................................
Check if property exists in PropertyIdResolver
Change-Id: Ia6760deb3270ff1567e4298e404e3538c7cae3bc
---
M client/includes/DataAccess/PropertyIdResolver.php
M client/includes/WikibaseClient.php
M client/tests/phpunit/includes/DataAccess/PropertyIdResolverTest.php
3 files changed, 20 insertions(+), 7 deletions(-)
Approvals:
Adrian Lang: Looks good to me, approved
jenkins-bot: Verified
diff --git a/client/includes/DataAccess/PropertyIdResolver.php
b/client/includes/DataAccess/PropertyIdResolver.php
index d4a77ed..c34f087 100644
--- a/client/includes/DataAccess/PropertyIdResolver.php
+++ b/client/includes/DataAccess/PropertyIdResolver.php
@@ -5,6 +5,7 @@
use InvalidArgumentException;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\Lib\PropertyLabelNotResolvedException;
+use Wikibase\Lib\Store\EntityLookup;
use Wikibase\PropertyLabelResolver;
/**
@@ -22,9 +23,15 @@
*/
class PropertyIdResolver {
+ private $entityLookup;
+
private $propertyLabelResolver;
- public function __construct( PropertyLabelResolver
$propertyLabelResolver ) {
+ public function __construct(
+ EntityLookup $entityLookup,
+ PropertyLabelResolver $propertyLabelResolver
+ ) {
+ $this->entityLookup = $entityLookup;
$this->propertyLabelResolver = $propertyLabelResolver;
}
@@ -38,6 +45,11 @@
public function resolvePropertyId( $propertyLabelOrId, $languageCode ) {
try {
$propertyId = new PropertyId( $propertyLabelOrId );
+
+ if ( !$this->entityLookup->hasEntity( $propertyId ) ) {
+ throw new PropertyLabelNotResolvedException(
$propertyLabelOrId, $languageCode );
+ }
+
} catch ( InvalidArgumentException $ex ) {
$propertyId = $this->findPropertyByLabel(
$propertyLabelOrId, $languageCode );
}
diff --git a/client/includes/WikibaseClient.php
b/client/includes/WikibaseClient.php
index 7f89ecb..4c8ce45 100644
--- a/client/includes/WikibaseClient.php
+++ b/client/includes/WikibaseClient.php
@@ -685,11 +685,12 @@
* @return PropertyClaimsRendererFactory
*/
private function getPropertyClaimsRendererFactory() {
- $snaksFinder = new SnaksFinder(
- $this->getEntityLookup()
- );
+ $entityLookup = $this->getEntityLookup();
+
+ $snaksFinder = new SnaksFinder( $entityLookup );
$propertyIdResolver = new PropertyIdResolver(
+ $entityLookup,
$this->getStore()->getPropertyLabelResolver()
);
diff --git
a/client/tests/phpunit/includes/DataAccess/PropertyIdResolverTest.php
b/client/tests/phpunit/includes/DataAccess/PropertyIdResolverTest.php
index 1a4ef8d..1b646b4 100644
--- a/client/tests/phpunit/includes/DataAccess/PropertyIdResolverTest.php
+++ b/client/tests/phpunit/includes/DataAccess/PropertyIdResolverTest.php
@@ -24,7 +24,7 @@
$mockRepository = $this->getMockRepository();
$propertyLabelResolver = new MockPropertyLabelResolver( 'en',
$mockRepository );
- return new PropertyIdResolver( $propertyLabelResolver );
+ return new PropertyIdResolver( $mockRepository,
$propertyLabelResolver );
}
private function getMockRepository() {
@@ -55,7 +55,6 @@
array( new PropertyId( 'P1337' ), 'a kitten!' ),
array( new PropertyId( 'P1337' ), 'p1337' ),
array( new PropertyId( 'P1337' ), 'P1337' ),
- array( new PropertyId( 'P1444' ), 'P1444' )
);
}
@@ -73,7 +72,8 @@
public function
resolvePropertyIdWithInvalidInput_throwsExceptionProvider() {
return array(
array( 'hedgehog' ),
- array( 'Q100' )
+ array( 'Q100' ),
+ array( 'P1444' )
);
}
--
To view, visit https://gerrit.wikimedia.org/r/171009
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia6760deb3270ff1567e4298e404e3538c7cae3bc
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits