Addshore has submitted this change and it was merged.

Change subject: Add convenience getTerm method to TermIndexEntry
......................................................................


Add convenience getTerm method to TermIndexEntry

Change-Id: I95cc093bec3f275b09257da6403037139debc3cd
---
M lib/includes/TermIndexEntry.php
M lib/tests/phpunit/TermIndexEntryTest.php
2 files changed, 45 insertions(+), 0 deletions(-)

Approvals:
  Daniel Kinzler: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/includes/TermIndexEntry.php b/lib/includes/TermIndexEntry.php
index 88facdb..82dbe6d 100644
--- a/lib/includes/TermIndexEntry.php
+++ b/lib/includes/TermIndexEntry.php
@@ -2,9 +2,11 @@
 
 namespace Wikibase;
 
+use InvalidArgumentException;
 use MWException;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\LegacyIdInterpreter;
+use Wikibase\DataModel\Term\Term;
 
 /**
  * Object representing a term index entry.
@@ -220,4 +222,17 @@
                return 0;
        }
 
+       /**
+        * @return Term
+        *
+        * @throws MWException
+        */
+       public function getTerm() {
+               try{
+                       return new Term( $this->getLanguage(), $this->getText() 
);
+               } catch( InvalidArgumentException $e ) {
+                       throw new MWException( 'Can not construct Term from 
partial TermIndexEntry' );
+               }
+       }
+
 }
diff --git a/lib/tests/phpunit/TermIndexEntryTest.php 
b/lib/tests/phpunit/TermIndexEntryTest.php
index 7946320..af0dfdb 100644
--- a/lib/tests/phpunit/TermIndexEntryTest.php
+++ b/lib/tests/phpunit/TermIndexEntryTest.php
@@ -3,6 +3,7 @@
 namespace Wikibase\Test;
 
 use Wikibase\DataModel\LegacyIdInterpreter;
+use Wikibase\DataModel\Term\Term;
 use Wikibase\TermIndexEntry;
 
 /**
@@ -173,4 +174,33 @@
                }
        }
 
+       public function testGetTerm() {
+               $termIndexEntry = new TermIndexEntry( array(
+                       'termLanguage' => 'en',
+                       'termText' => 'foo',
+               ) );
+               $expectedTerm = new Term( 'en', 'foo' );
+               $this->assertEquals( $expectedTerm, $termIndexEntry->getTerm() 
);
+       }
+
+       public function provideTermIndexEntryData() {
+               return array(
+                       array( array(
+                               'termText' => 'foo',
+                       ) ),
+                       array( array(
+                               'termLanguage' => 'en',
+                       ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTermIndexEntryData
+        */
+       public function testGetTerm_throwsException( $termIndexEntryData ) {
+               $termIndexEntry = new TermIndexEntry( $termIndexEntryData );
+               $this->setExpectedException( 'MWException', 'Can not construct 
Term from partial TermIndexEntry' );
+               $termIndexEntry->getTerm();
+       }
+
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/219167
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I95cc093bec3f275b09257da6403037139debc3cd
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to