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