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

Reply via email to