Thiemo Mättig (WMDE) has uploaded a new change for review.
https://gerrit.wikimedia.org/r/205853
Change subject: Clean up RDF related code after split
......................................................................
Clean up RDF related code after split
Bug: T92515
Change-Id: I538f33a6da2da3a0b77546749e771dfe415d2c68
---
M repo/includes/rdf/ComplexValueRdfBuilder.php
M repo/includes/rdf/DateTimeValueCleaner.php
M repo/includes/rdf/EntityRdfBuilder.php
M repo/includes/rdf/FullStatementRdfBuilder.php
M repo/includes/rdf/JulianDateTimeValueCleaner.php
M repo/includes/rdf/RdfBuilder.php
M repo/includes/rdf/RdfProducer.php
M repo/includes/rdf/SimpleValueRdfBuilder.php
M repo/includes/rdf/TruthyStatementRdfBuilder.php
M repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
M repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
M repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
18 files changed, 286 insertions(+), 188 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/53/205853/1
diff --git a/repo/includes/rdf/ComplexValueRdfBuilder.php
b/repo/includes/rdf/ComplexValueRdfBuilder.php
index 2b4359b..39e7e44 100644
--- a/repo/includes/rdf/ComplexValueRdfBuilder.php
+++ b/repo/includes/rdf/ComplexValueRdfBuilder.php
@@ -28,7 +28,6 @@
*/
private $valueWriter;
-
/**
* @param RdfVocabulary $vocabulary
* @param RdfWriter $valueWriter
@@ -97,14 +96,11 @@
break;
default:
- $prefix = null;
- $fields = null;
+ return;
}
- if ( !empty( $fields ) ) {
- $valueLName = $this->addExpandedValue( $value, $prefix,
$fields );
- $writer->say( $propertyValueNamespace,
$propertyValueLName."-value" )->is( RdfVocabulary::NS_VALUE, $valueLName );
- }
+ $valueLName = $this->addExpandedValue( $value, $prefix, $fields
);
+ $writer->say( $propertyValueNamespace,
$propertyValueLName."-value" )->is( RdfVocabulary::NS_VALUE, $valueLName );
}
/**
@@ -118,11 +114,11 @@
*/
private function addExpandedValue( DataValue $value, $prefix, array
$props ) {
$valueLName = $value->getHash();
+ $seen = $this->valueSeenCallback !== null
+ && call_user_func( $this->valueSeenCallback,
$valueLName );
- if ( $this->valueSeenCallback ) {
- if ( call_user_func( $this->valueSeenCallback,
$valueLName ) !== false ) {
- return $valueLName;
- }
+ if ( $seen ) {
+ return $valueLName;
}
$this->valueWriter->about( RdfVocabulary::NS_VALUE, $valueLName
)->a( RdfVocabulary::NS_ONTOLOGY, 'Value' );
diff --git a/repo/includes/rdf/DateTimeValueCleaner.php
b/repo/includes/rdf/DateTimeValueCleaner.php
index 0bbed3d..22e512b 100644
--- a/repo/includes/rdf/DateTimeValueCleaner.php
+++ b/repo/includes/rdf/DateTimeValueCleaner.php
@@ -1,15 +1,16 @@
<?php
-namespace Wikibase;
+
+namespace Wikibase\Rdf;
use DataValues\TimeValue;
/**
- * Very basic cleaner that assumes the date is Gregorian and only
- * ensures it looks OK.
+ * Very basic cleaner that assumes the date is Gregorian and only ensures it
looks ok.
*
* @licence GNU GPL v2+
*/
class DateTimeValueCleaner {
+
/**
* Clean up Wikidata date value in Gregorian calendar
* - remove + from the start - not all data stores like that
@@ -79,4 +80,5 @@
public function getStandardValue( TimeValue $value ) {
return $this->cleanupGregorianValue( $value->getTime() );
}
-}
\ No newline at end of file
+
+}
diff --git a/repo/includes/rdf/EntityRdfBuilder.php
b/repo/includes/rdf/EntityRdfBuilder.php
index ebe7fb6..c025def 100644
--- a/repo/includes/rdf/EntityRdfBuilder.php
+++ b/repo/includes/rdf/EntityRdfBuilder.php
@@ -6,6 +6,7 @@
/**
* Interface for an RDF mapping for (some aspect of) wikibase entities.
+ * FIXME: What exactly does "some" mean?
*
* @since 0.5
*
diff --git a/repo/includes/rdf/FullStatementRdfBuilder.php
b/repo/includes/rdf/FullStatementRdfBuilder.php
index 4169c00..a29872d 100644
--- a/repo/includes/rdf/FullStatementRdfBuilder.php
+++ b/repo/includes/rdf/FullStatementRdfBuilder.php
@@ -2,8 +2,10 @@
namespace Wikibase\Rdf;
+use InvalidArgumentException;
use Wikibase\DataModel\Entity\EntityDocument;
use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Reference;
use Wikibase\DataModel\Snak\PropertyValueSnak;
use Wikibase\DataModel\Snak\Snak;
use Wikibase\DataModel\Statement\Statement;
@@ -13,6 +15,7 @@
/**
* Fully reified RDF mapping for wikibase statements.
+ * FIXME: Rewhat?
* This does not output simple statements. If both forms (simple and full) are
desired,
* use SimpleStatementRdfBuilder in addition to FullStatementRdfBuilder.
*
@@ -147,6 +150,7 @@
public function addStatements( EntityId $entityId, StatementList
$statementList ) {
$bestList = array();
+ /** @var Statement $statement */
// FIXME: getBestStatementPerProperty() is expensive, share the
result with TruthyStatementRdfBuilder!
foreach ( $statementList->getBestStatementPerProperty() as
$statement ) {
$bestList[$statement->getGuid()] = true;
@@ -181,13 +185,14 @@
// XXX: separate builder for references?
if ( $this->produceReferences ) {
+ /** @var Reference $reference */
foreach ( $statement->getReferences() as $reference ) {
//FIXME: split body into separate method
$hash = $reference->getSnaks()->getHash();
$refLName = $hash;
$this->statementWriter->about(
RdfVocabulary::NS_STATEMENT, $statementLName )
->say( RdfVocabulary::NS_PROV,
'wasDerivedFrom' )->is( RdfVocabulary::NS_REFERENCE, $refLName );
- if ( $this->referenceSeen( $hash ) !== false ) {
+ if ( $this->referenceSeen( $hash ) ) {
continue;
}
@@ -244,6 +249,8 @@
* @param RdfWriter $writer
* @param Snak $snak
* @param $propertyNamespace
+ *
+ * @throws InvalidArgumentException
*/
private function addSnak( RdfWriter $writer, Snak $snak,
$propertyNamespace ) {
@@ -264,7 +271,7 @@
$writer->say( $propertyNamespace,
$propertyValueLName )->is( RdfVocabulary::NS_ONTOLOGY, 'Novalue' );
break;
default:
- throw new \InvalidArgumentException( 'Unknown
snak type: ' . $snak->getType() );
+ throw new InvalidArgumentException( 'Unknown
snak type: ' . $snak->getType() );
}
}
@@ -274,13 +281,10 @@
* @return bool
*/
private function referenceSeen( $hash ) {
- if ( $this->referenceSeenCallback ) {
- if ( call_user_func( $this->referenceSeenCallback,
$hash ) ) {
- return $hash;
- }
- }
+ $seen = $this->referenceSeenCallback !== null
+ && call_user_func( $this->referenceSeenCallback, $hash
);
- return false;
+ return $seen;
}
/**
@@ -292,8 +296,10 @@
*/
public function addEntity( EntityDocument $entity ) {
if ( $entity instanceof StatementListProvider ) {
- $entityId = $entity->getId();
- $this->addStatements( $entityId,
$entity->getStatements() );
+ $statementList = $entity->getStatements();
+
+ /** @var EntityDocument $entity */
+ $this->addStatements( $entity->getId(), $statementList
);
}
}
diff --git a/repo/includes/rdf/JulianDateTimeValueCleaner.php
b/repo/includes/rdf/JulianDateTimeValueCleaner.php
index a601d73..7c17565 100644
--- a/repo/includes/rdf/JulianDateTimeValueCleaner.php
+++ b/repo/includes/rdf/JulianDateTimeValueCleaner.php
@@ -1,14 +1,20 @@
<?php
-namespace Wikibase;
+
+namespace Wikibase\Rdf;
use DataValues\TimeValue;
/**
* Clean datetime value to conform to RDF/XML standards
* This class supports Julian->Gregorian conversion
+ *
+ * @since 0.5
+ *
* @licence GNU GPL v2+
+ * @author Stas Malyshev
*/
class JulianDateTimeValueCleaner extends DateTimeValueCleaner {
+
// I'm not very happy about hardcoding it here but see no better way so
far
// Gregorian calendar link.
const GREGORIAN_CALENDAR = 'http://www.wikidata.org/entity/Q1985727';
@@ -61,4 +67,5 @@
}
return null;
}
-}
\ No newline at end of file
+
+}
diff --git a/repo/includes/rdf/RdfBuilder.php b/repo/includes/rdf/RdfBuilder.php
index 871c0a1..cdf2aec 100644
--- a/repo/includes/rdf/RdfBuilder.php
+++ b/repo/includes/rdf/RdfBuilder.php
@@ -3,6 +3,7 @@
namespace Wikibase\Rdf;
use BagOStuff;
+use HashBagOStuff;
use SiteList;
use Wikibase\DataModel\Entity\BasicEntityIdParser;
use Wikibase\DataModel\Entity\EntityDocument;
@@ -12,7 +13,6 @@
use Wikibase\DataModel\Term\FingerprintProvider;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\RdfProducer;
use Wikimedia\Purtle\RdfWriter;
/**
@@ -34,13 +34,14 @@
* is used to indicate that the entity has been resolved, 'false'
indicates
* that the entity was mentioned but not resolved (defined).
*
- * @var array
+ * @var bool[]
*/
- private $entitiesResolved = array ();
+ private $entitiesResolved = array();
/**
* What the serializer would produce?
- * @var integer
+ *
+ * @var int
*/
private $produceWhat;
@@ -77,11 +78,10 @@
private $propertyLookup;
/**
- *
* @param SiteList $sites
* @param RdfVocabulary $vocabulary
* @param PropertyDataTypeLookup $propertyLookup
- * @param integer $flavor
+ * @param int $flavor
* @param RdfWriter $writer
* @param BagOStuff|null $dedupBag Container used for deduplication of
refs/values
*/
@@ -97,7 +97,7 @@
$this->propertyLookup = $propertyLookup;
$this->writer = $writer;
$this->produceWhat = $flavor;
- $this->dedupBag = $dedupBag ?: new \HashBagOStuff();
+ $this->dedupBag = $dedupBag ?: new HashBagOStuff();
// XXX: move construction of sub-builders to a factory class.
$this->termsBuilder = new TermsRdfBuilder( $vocabulary, $writer
);
@@ -144,7 +144,6 @@
$statementValueBuilder->setMentionedEntityTracker(
$this );
} else {
$statementValueBuilder =
$this->newSimpleValueRdfBuilder();
-
}
return $statementValueBuilder;
@@ -252,8 +251,7 @@
}
/**
- * Registers an entity as mentioned.
- * Will be recorded as unresolved
+ * Registers an entity as mentioned. Will be recorded as unresolved
* if it wasn't already marked as resolved.
*
* @param EntityId $entityId
@@ -319,7 +317,6 @@
* Adds meta-information about an entity (such as the ID and type) to
the RDF graph.
*
* @todo: extract into MetaDataRdfBuilder
- $writer->say( $propertyValueNamespace,
$propertyValueLName )->is( trim( $value ) );
*
* @param EntityDocument $entity
* @param bool $produceData Should we also produce Dataset node?
@@ -366,8 +363,7 @@
}
/**
- * Add stubs for any entities that were previously mentioned (e.g.
- * as properties
+ * Add stubs for any entities that were previously mentioned (e.g. as
properties
* or data values).
*
* @param EntityLookup $entityLookup
diff --git a/repo/includes/rdf/RdfProducer.php
b/repo/includes/rdf/RdfProducer.php
index 571427a..51392df 100644
--- a/repo/includes/rdf/RdfProducer.php
+++ b/repo/includes/rdf/RdfProducer.php
@@ -1,9 +1,14 @@
<?php
-namespace Wikibase;
+namespace Wikibase\Rdf;
/**
* RDF producer options
+ *
+ * @since 0.5
+ *
+ * @licence GNU GPL v2+
+ * @author Stas Malyshev
*/
interface RdfProducer {
@@ -59,4 +64,5 @@
* All options turned on.
*/
const PRODUCE_ALL = 0xFFFF;
+
}
diff --git a/repo/includes/rdf/SimpleValueRdfBuilder.php
b/repo/includes/rdf/SimpleValueRdfBuilder.php
index 816da67..925e016 100644
--- a/repo/includes/rdf/SimpleValueRdfBuilder.php
+++ b/repo/includes/rdf/SimpleValueRdfBuilder.php
@@ -13,8 +13,6 @@
use Wikibase\DataModel\Entity\PropertyDataTypeLookup;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Entity\PropertyNotFoundException;
-use Wikibase\DateTimeValueCleaner;
-use Wikibase\JulianDateTimeValueCleaner;
use Wikimedia\Purtle\RdfWriter;
/**
@@ -56,8 +54,7 @@
$this->vocabulary = $vocabulary;
$this->propertyLookup = $propertyLookup;
- // TODO: if data is fixed to be always Gregorian, replace with
- // DateTimeValueCleaner
+ // TODO: if data is fixed to be always Gregorian, replace with
DateTimeValueCleaner
$this->dateCleaner = new JulianDateTimeValueCleaner();
$this->mentionedEntityTracker = new
NullMentionedEntityTracker();
}
@@ -84,8 +81,11 @@
* @param DataValue $value
* @param string $propertyNamespace The property namespace for this snak
*/
- public function addSnakValue( RdfWriter $writer, PropertyId $propertyId,
- DataValue $value, $propertyNamespace
+ public function addSnakValue(
+ RdfWriter $writer,
+ PropertyId $propertyId,
+ DataValue $value,
+ $propertyNamespace
) {
$propertyValueLName = $this->vocabulary->getEntityLName(
$propertyId );
@@ -115,7 +115,6 @@
* @param DataValue $value
*/
protected function addValueForDataType( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType, $value ) {
-
//FIXME: use a proper registry / dispatching builder
$typeFunc = 'addStatementFor' . preg_replace( '/[^\w]/', '',
ucwords( $value->getType() ) );
@@ -128,7 +127,6 @@
}
// TODO: add special handling like in WDTK?
//
https://github.com/Wikidata/Wikidata-Toolkit/blob/master/wdtk-rdf/src/main/java/org/wikidata/wdtk/rdf/extensions/SimpleIdExportExtension.java
-
}
/**
@@ -140,9 +138,13 @@
* @param string $dataType Property data type
* @param EntityIdValue $value
*/
- private function addStatementForWikibaseEntityid( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType,
- EntityIdValue $value ) {
-
+ private function addStatementForWikibaseEntityid(
+ RdfWriter $writer,
+ $propertyValueNamespace,
+ $propertyValueLName,
+ $dataType,
+ EntityIdValue $value
+ ) {
$entityId = $value->getValue()->getEntityId();
$entityLName = $this->vocabulary->getEntityLName( $entityId );
$writer->say( $propertyValueNamespace, $propertyValueLName
)->is( RdfVocabulary::NS_ENTITY, $entityLName );
@@ -159,11 +161,16 @@
* @param string $dataType Property data type
* @param StringValue $value
*/
- private function addStatementForString( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType,
- StringValue $value ) {
- if ( $dataType == 'commonsMedia' ) {
+ private function addStatementForString(
+ RdfWriter $writer,
+ $propertyValueNamespace,
+ $propertyValueLName,
+ $dataType,
+ StringValue $value
+ ) {
+ if ( $dataType === 'commonsMedia' ) {
$this->addValueToNode( $writer,
$propertyValueNamespace, $propertyValueLName, 'url',
$this->vocabulary->getCommonsURI( $value->getValue() ) );
- } elseif ( $dataType == 'url' ) {
+ } elseif ( $dataType === 'url' ) {
$this->addValueToNode( $writer,
$propertyValueNamespace, $propertyValueLName, 'url', $value->getValue() );
} else {
$writer->say( $propertyValueNamespace,
$propertyValueLName )->text( $value->getValue() );
@@ -181,13 +188,13 @@
* @param mixed $value
*/
protected function addValueToNode( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $type, $value ) {
- if( $type == 'url' ) {
+ if ( $type === 'url' ) {
// Trims extra whitespace since we had a bug in
wikidata where some URLs end up having it
$writer->say( $propertyValueNamespace,
$propertyValueLName )->is( trim( $value ) );
- } elseif( $type == 'dateTime' && $value instanceof TimeValue ) {
+ } elseif ( $type === 'dateTime' && $value instanceof TimeValue
) {
$writer->say( $propertyValueNamespace,
$propertyValueLName );
$this->sayDateLiteral( $writer, $value );
- } elseif( $type == 'decimal' ) {
+ } elseif ( $type === 'decimal' ) {
// TODO: handle precision here?
if ( $value instanceof DecimalValue ) {
$value = $value->getValue();
@@ -214,8 +221,13 @@
* @param string $dataType Property data type
* @param MonolingualTextValue $value
*/
- private function addStatementForMonolingualtext( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType,
- MonolingualTextValue $value ) {
+ private function addStatementForMonolingualtext(
+ RdfWriter $writer,
+ $propertyValueNamespace,
+ $propertyValueLName,
+ $dataType,
+ MonolingualTextValue $value
+ ) {
$writer->say( $propertyValueNamespace, $propertyValueLName
)->text( $value->getText(), $value->getLanguageCode() );
}
@@ -245,9 +257,13 @@
* @param string $dataType Property data type
* @param TimeValue $value
*/
- private function addStatementForTime( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType,
- TimeValue $value ) {
-
+ private function addStatementForTime(
+ RdfWriter $writer,
+ $propertyValueNamespace,
+ $propertyValueLName,
+ $dataType,
+ TimeValue $value
+ ) {
$this->addValueToNode( $writer, $propertyValueNamespace,
$propertyValueLName, 'dateTime', $value );
}
@@ -260,9 +276,13 @@
* @param string $dataType Property data type
* @param GlobeCoordinateValue $value
*/
- private function addStatementForGlobecoordinate( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType,
- GlobeCoordinateValue $value ) {
-
+ private function addStatementForGlobecoordinate(
+ RdfWriter $writer,
+ $propertyValueNamespace,
+ $propertyValueLName,
+ $dataType,
+ GlobeCoordinateValue $value
+ ) {
$point = "Point({$value->getLatitude()}
{$value->getLongitude()})";
$writer->say( $propertyValueNamespace, $propertyValueLName
)->value( $point, RdfVocabulary::NS_GEO, "wktLiteral" );
}
@@ -276,8 +296,13 @@
* @param string $dataType Property data type
* @param QuantityValue $value
*/
- private function addStatementForQuantity( RdfWriter $writer,
$propertyValueNamespace, $propertyValueLName, $dataType,
- QuantityValue $value ) {
+ private function addStatementForQuantity(
+ RdfWriter $writer,
+ $propertyValueNamespace,
+ $propertyValueLName,
+ $dataType,
+ QuantityValue $value
+ ) {
$writer->say( $propertyValueNamespace, $propertyValueLName
)->value( $value->getAmount(), 'xsd', 'decimal' );
}
diff --git a/repo/includes/rdf/TruthyStatementRdfBuilder.php
b/repo/includes/rdf/TruthyStatementRdfBuilder.php
index a15b959..799c515 100644
--- a/repo/includes/rdf/TruthyStatementRdfBuilder.php
+++ b/repo/includes/rdf/TruthyStatementRdfBuilder.php
@@ -2,6 +2,7 @@
namespace Wikibase\Rdf;
+use InvalidArgumentException;
use Wikibase\DataModel\Entity\EntityDocument;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -12,6 +13,7 @@
/**
* "Truthy" RDF mapping for wikibase statements.
+ * FIXME: What does "truthy" mean?
*
* @since 0.5
*
@@ -67,6 +69,8 @@
*
* @param EntityId $entityId
* @param Statement $statement
+ *
+ * @throws InvalidArgumentException
*/
private function addMainSnak( EntityId $entityId, Statement $statement
) {
$snak = $statement->getMainSnak();
@@ -92,7 +96,7 @@
$this->writer->say(
RdfVocabulary::NS_DIRECT_CLAIM, $propertyValueLName )->is(
RdfVocabulary::NS_ONTOLOGY, 'Novalue' );
break;
default:
- throw new \InvalidArgumentException( 'Unknown
snak type: ' . $snak->getType() );
+ throw new InvalidArgumentException( 'Unknown
snak type: ' . $snak->getType() );
}
}
diff --git a/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
index bb46b90..0931c55 100644
--- a/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/ComplexValueRdfBuilderTest.php
@@ -10,17 +10,17 @@
use DataValues\QuantityValue;
use DataValues\StringValue;
use DataValues\TimeValue;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\EntityIdValue;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Entity\PropertyId;
use Wikimedia\Purtle\RdfWriter;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
use Wikibase\Rdf\RdfVocabulary;
use Wikibase\Rdf\ComplexValueRdfBuilder;
/**
- * @covers Wikibase\ComplexValueRdfBuilder
+ * @covers Wikibase\Rdf\ComplexValueRdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -30,23 +30,26 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class ComplexValueRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class ComplexValueRdfBuilderTest extends PHPUnit_Framework_TestCase {
- private $testData;
+ /**
+ * @var RdfBuilderTestData|null
+ */
+ private $testData = null;
/**
* Initialize repository data
*
* @return RdfBuilderTestData
*/
- private function getTestData()
- {
- if( empty( $this->testData ) ) {
+ private function getTestData() {
+ if ( $this->testData === null ) {
$this->testData = new RdfBuilderTestData(
__DIR__ . "/../../data/rdf",
__DIR__ .
"/../../data/rdf/ComplexValueRdfBuilder"
);
}
+
return $this->testData;
}
diff --git a/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
b/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
index 5ac4b92..4e7479e 100644
--- a/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
+++ b/repo/tests/phpunit/includes/rdf/DateValueCleanerTest.php
@@ -1,11 +1,24 @@
<?php
-namespace Wikibase\Test;
+
+namespace Wikibase\Test\Rdf;
use DataValues\TimeValue;
-use Wikibase\DateTimeValueCleaner;
-use Wikibase\JulianDateTimeValueCleaner;
+use PHPUnit_Framework_TestCase;
+use Wikibase\Rdf\DateTimeValueCleaner;
+use Wikibase\Rdf\JulianDateTimeValueCleaner;
-class DateValueCleanerTest extends \PHPUnit_Framework_TestCase {
+/**
+ * @covers Wikibase\Rdf\DateTimeValueCleaner
+ * @covers Wikibase\Rdf\JulianDateTimeValueCleaner
+ *
+ * @group Wikibase
+ * @group WikibaseRepo
+ * @group WikibaseRdf
+ *
+ * @licence GNU GPL v2+
+ * @author Stas Malyshev
+ */
+class DateValueCleanerTest extends PHPUnit_Framework_TestCase {
public function getDates() {
return array(
@@ -36,18 +49,19 @@
/**
* @dataProvider getDates
*/
- public function testCleanDate($date, $calendar, $expected) {
- $jCleaner = new JulianDateTimeValueCleaner();
- $gCleaner = new DateTimeValueCleaner();
+ public function testCleanDate( $date, $calendar, $expected ) {
+ $julianCleaner = new JulianDateTimeValueCleaner();
+ $gregorianCleaner = new DateTimeValueCleaner();
- $value = new TimeValue($date, 0, 0, 0,
TimeValue::PRECISION_SECOND, $calendar);
+ $value = new TimeValue( $date, 0, 0, 0,
TimeValue::PRECISION_SECOND, $calendar );
- $result = $jCleaner->getStandardValue($value);
- $this->assertEquals($expected, $result);
+ $result = $julianCleaner->getStandardValue( $value );
+ $this->assertEquals( $expected, $result );
- if($calendar == 'http://www.wikidata.org/entity/Q1985727') {
- $result = $gCleaner->getStandardValue($value);
- $this->assertEquals($expected, $result);
+ if ( $calendar == 'http://www.wikidata.org/entity/Q1985727' ) {
+ $result = $gregorianCleaner->getStandardValue( $value );
+ $this->assertEquals( $expected, $result );
}
}
-}
\ No newline at end of file
+
+}
diff --git a/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
index d6b9b18..1c05854 100644
--- a/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/FullStatementsRdfBuilderTest.php
@@ -2,15 +2,15 @@
namespace Wikibase\Test\Rdf;
-use Wikibase\Rdf\ComplexValueRdfBuilder;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\EntityId;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
-use Wikibase\RdfProducer;
-use Wikibase\Rdf\SimpleValueRdfBuilder;
+use Wikibase\Rdf\ComplexValueRdfBuilder;
use Wikibase\Rdf\FullStatementRdfBuilder;
+use Wikibase\Rdf\RdfProducer;
+use Wikibase\Rdf\SimpleValueRdfBuilder;
/**
- * @covers Wikibase\FullStatementRdfBuilder
+ * @covers Wikibase\Rdf\FullStatementRdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -20,23 +20,26 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class FullStatementRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class FullStatementRdfBuilderTest extends PHPUnit_Framework_TestCase {
- private $testData;
+ /**
+ * @var RdfBuilderTestData|null
+ */
+ private $testData = null;
/**
* Initialize repository data
*
* @return RdfBuilderTestData
*/
- private function getTestData()
- {
- if( empty( $this->testData ) ) {
+ private function getTestData() {
+ if ( $this->testData === null ) {
$this->testData = new RdfBuilderTestData(
__DIR__ . "/../../data/rdf",
__DIR__ .
"/../../data/rdf/FullStatementRdfBuilder"
);
}
+
return $this->testData;
}
@@ -62,7 +65,6 @@
if ( $flavor & RdfProducer::PRODUCE_FULL_VALUES ) {
$valueWriter = $writer->sub();
-
$statementValueBuilder = new ComplexValueRdfBuilder(
$vocabulary, $valueWriter, $this->getTestData()->getMockRepository() );
} else {
$statementValueBuilder = new SimpleValueRdfBuilder(
$vocabulary, $this->getTestData()->getMockRepository() );
diff --git a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
index a005d9b..4f97f22 100644
--- a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
@@ -2,14 +2,16 @@
namespace Wikibase\Test\Rdf;
+use BagOStuff;
+use HashBagOStuff;
+use MediaWikiTestCase;
use Wikibase\DataModel\Entity\Entity;
-use Wikimedia\Purtle\NTriplesRdfWriter;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
use Wikibase\Rdf\RdfBuilder;
-use Wikibase\RdfProducer;
+use Wikibase\Rdf\RdfProducer;
+use Wikimedia\Purtle\NTriplesRdfWriter;
/**
- * @covers Wikibase\RdfBuilder
+ * @covers Wikibase\Rdf\RdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -19,7 +21,7 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class RdfBuilderTest extends \MediaWikiTestCase {
+class RdfBuilderTest extends MediaWikiTestCase {
private $testData;
@@ -38,11 +40,14 @@
}
/**
+ * @param int $produce
+ * @param BagOStuff|null $dedup
+ *
* @return RdfBuilder
*/
- private function newRdfBuilder( $produce, \BagOStuff $dedup = null ) {
+ private function newRdfBuilder( $produce, BagOStuff $dedup = null ) {
if( !$dedup ) {
- $dedup = new \HashBagOStuff();
+ $dedup = new HashBagOStuff();
}
$emitter = new NTriplesRdfWriter();
$builder = new RdfBuilder(
@@ -60,34 +65,36 @@
/**
* Load entity from JSON
- * @param string $entityId
+ *
+ * @param string $idString
+ *
* @return Entity
*/
- public function getEntityData( $entityId )
- {
- return $this->getTestData()->getEntity( $entityId );
+ public function getEntityData( $idString ) {
+ return $this->getTestData()->getEntity( $idString );
}
/**
* Load serialized ntriples
+ *
* @param string $testName
- * @return array
+ *
+ * @return string[]|null
*/
- public function getSerializedData( $testName )
- {
+ public function getSerializedData( $testName ) {
return $this->getTestData()->getNTriples( $testName );
}
public function getRdfTests() {
$rdfTests = array(
- array('Q1', 'Q1_simple'),
- array('Q2', 'Q2_labels'),
- array('Q3', 'Q3_links'),
- array('Q4', 'Q4_claims'),
- array('Q5', 'Q5_badges'),
- array('Q6', 'Q6_qualifiers'),
- array('Q7', 'Q7_references'),
- array('Q8', 'Q8_baddates'),
+ array( 'Q1', 'Q1_simple' ),
+ array( 'Q2', 'Q2_labels' ),
+ array( 'Q3', 'Q3_links' ),
+ array( 'Q4', 'Q4_claims' ),
+ array( 'Q5', 'Q5_badges' ),
+ array( 'Q6', 'Q6_qualifiers' ),
+ array( 'Q7', 'Q7_references' ),
+ array( 'Q8', 'Q8_baddates' ),
);
return $rdfTests;
@@ -165,7 +172,7 @@
}
public function testDeduplication() {
- $bag = new \HashBagOStuff();
+ $bag = new HashBagOStuff();
$builder = $this->newRdfBuilder( RdfProducer::PRODUCE_ALL, $bag
);
$builder->addEntity( $this->getEntityData( 'Q7' ) );
$data1 = $this->getDataFromBuilder( $builder );
diff --git a/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
b/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
index 6ec1f05..75d677f 100644
--- a/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
+++ b/repo/tests/phpunit/includes/rdf/RdfBuilderTestData.php
@@ -1,7 +1,8 @@
<?php
-namespace Wikibase\Rdf\Test;
+namespace Wikibase\Test\Rdf;
+use Site;
use SiteList;
use Wikibase\DataModel\Entity\Entity;
use Wikibase\DataModel\Entity\Item;
@@ -9,6 +10,7 @@
use Wikibase\DataModel\Entity\Property;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Term\Fingerprint;
+use Wikibase\Lib\Store\EntityContentDataCodec;
use Wikibase\Rdf\RdfVocabulary;
use Wikimedia\Purtle\NTriplesRdfWriter;
use Wikibase\Repo\WikibaseRepo;
@@ -30,8 +32,19 @@
const URI_BASE = 'http://acme.test/';
const URI_DATA = 'http://data.acme.test/';
- private $codec;
+ /**
+ * @var EntityContentDataCodec|null
+ */
+ private $codec = null;
+
+ /**
+ * @var string
+ */
private $dataDir;
+
+ /**
+ * @var string
+ */
private $entityDir;
/**
@@ -44,28 +57,31 @@
}
/**
- * Initialize repository data
+ * @return EntityContentDataCodec
*/
- private function getCodec()
- {
- if( empty($this->codec) ) {
+ private function getCodec() {
+ if ( $this->codec === null ) {
$wikibaseRepo = WikibaseRepo::getDefaultInstance();
$wikibaseRepo->getSettings()->setSetting(
'internalEntitySerializerClass', null );
$wikibaseRepo->getSettings()->setSetting(
'useRedirectTargetColumn', true );
$this->codec =
$wikibaseRepo->getEntityContentDataCodec();
}
+
return $this->codec;
}
/**
* Load entity from JSON
- * @param string $entityName
+ *
+ * @param string $idString
+ *
* @return Entity
*/
- public function getEntity( $entityName )
- {
+ public function getEntity( $idString ) {
return $this->getCodec()->decodeEntity(
- file_get_contents(
"{$this->entityDir}/$entityName.json" ), CONTENT_FORMAT_JSON );
+ file_get_contents( "{$this->entityDir}/$idString.json"
),
+ CONTENT_FORMAT_JSON
+ );
}
/**
@@ -75,13 +91,12 @@
* @return string[]|null ntriples lines, sorted, or null if
* no data file was found with the given name.
*/
- public function getNTriples( $dataSetName )
- {
+ public function getNTriples( $dataSetName ) {
$filename = "{$this->dataDir}/$dataSetName.nt";
- if ( !file_exists( $filename ) )
- {
+ if ( !file_exists( $filename ) ) {
return null;
}
+
$data = trim( file_get_contents( $filename ) );
$data = explode( "\n", $data );
sort( $data );
@@ -104,8 +119,7 @@
*/
public function putTestData( $dataSetName, $lines, $suffix = '' ) {
$filename = "{$this->dataDir}/$dataSetName.nt$suffix";
- if ( file_exists( $filename ) )
- {
+ if ( file_exists( $filename ) ) {
return false;
}
@@ -146,18 +160,18 @@
/**
* Get site definitions matching the test data.
*
- * @return \SiteList
+ * @return SiteList
*/
public function getSiteList() {
$list = new SiteList();
- $wiki = new \Site();
+ $wiki = new Site();
$wiki->setGlobalId( 'enwiki' );
$wiki->setLanguageCode( 'en' );
$wiki->setLinkPath( 'http://enwiki.acme.test/$1' );
$list['enwiki'] = $wiki;
- $wiki = new \Site();
+ $wiki = new Site();
$wiki->setGlobalId( 'ruwiki' );
$wiki->setLanguageCode( 'ru' );
$wiki->setLinkPath( 'http://ruwiki.acme.test/$1' );
@@ -172,14 +186,14 @@
*/
private static function getTestProperties() {
return array(
- array(2, 'wikibase-entityid'),
- array(3, 'commonsMedia'),
- array(4, 'globecoordinate'),
- array(5, 'monolingualtext'),
- array(6, 'quantity'),
- array(7, 'string'),
- array(8, 'time'),
- array(9, 'url'),
+ array( 2, 'wikibase-entityid' ),
+ array( 3, 'commonsMedia' ),
+ array( 4, 'globecoordinate' ),
+ array( 5, 'monolingualtext' ),
+ array( 6, 'quantity' ),
+ array( 7, 'string' ),
+ array( 8, 'time' ),
+ array( 9, 'url' ),
);
}
@@ -191,23 +205,25 @@
public function getMockRepository() {
static $repo;
- if ( !empty($repo) ) {
+ if ( !empty( $repo ) ) {
return $repo;
}
$repo = new MockRepository();
- foreach( self::getTestProperties() as $prop ) {
- list($id, $type) = $prop;
- $fingerprint = Fingerprint::newEmpty();
+ foreach ( self::getTestProperties() as $prop ) {
+ list( $id, $type ) = $prop;
+ $fingerprint = new Fingerprint();
$fingerprint->setLabel( 'en', "Property$id" );
- $entity = new Property( PropertyId::newFromNumber($id),
$fingerprint, $type );
+ $entity = new Property( PropertyId::newFromNumber( $id
), $fingerprint, $type );
$repo->putEntity( $entity );
}
- $fingerprint = Fingerprint::newEmpty();
- $fingerprint->setLabel( 'en', "Item42" );
- $entity = new Item( ItemId::newFromNumber(42), $fingerprint );
+
+ $fingerprint = new Fingerprint();
+ $fingerprint->setLabel( 'en', 'Item42' );
+ $entity = new Item( new ItemId( 'Q42' ), $fingerprint );
$repo->putEntity( $entity );
+
return $repo;
}
diff --git a/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
index 739c7f6..6186022 100644
--- a/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/SimpleValueRdfBuilderTest.php
@@ -10,17 +10,17 @@
use DataValues\QuantityValue;
use DataValues\StringValue;
use DataValues\TimeValue;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\EntityIdValue;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Entity\PropertyId;
use Wikimedia\Purtle\RdfWriter;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
use Wikibase\Rdf\RdfVocabulary;
use Wikibase\Rdf\SimpleValueRdfBuilder;
/**
- * @covers Wikibase\SimpleValueRdfBuilder
+ * @covers Wikibase\Rdf\SimpleValueRdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -30,23 +30,26 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class SimpleValueRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class SimpleValueRdfBuilderTest extends PHPUnit_Framework_TestCase {
- private $testData;
+ /**
+ * @var RdfBuilderTestData|null
+ */
+ private $testData = null;
/**
* Initialize repository data
*
* @return RdfBuilderTestData
*/
- private function getTestData()
- {
- if( empty( $this->testData ) ) {
+ private function getTestData() {
+ if ( $this->testData === null ) {
$this->testData = new RdfBuilderTestData(
__DIR__ . "/../../data/rdf",
__DIR__ .
"/../../data/rdf/SimpleValueRdfBuilder"
);
}
+
return $this->testData;
}
diff --git a/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
index 7fae5dd0..ac3787c 100644
--- a/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/SiteLinksRdfBuilderTest.php
@@ -2,11 +2,11 @@
namespace Wikibase\Test\Rdf;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
+use PHPUnit_Framework_TestCase;
use Wikibase\Rdf\SiteLinksRdfBuilder;
/**
- * @covers Wikibase\SiteLinksRdfBuilder
+ * @covers Wikibase\Rdf\SiteLinksRdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -16,23 +16,26 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class SiteLinksRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class SiteLinksRdfBuilderTest extends PHPUnit_Framework_TestCase {
- private $testData;
+ /**
+ * @var RdfBuilderTestData|null
+ */
+ private $testData = null;
/**
* Initialize repository data
*
* @return RdfBuilderTestData
*/
- private function getTestData()
- {
- if( empty( $this->testData ) ) {
+ private function getTestData() {
+ if ( $this->testData === null ) {
$this->testData = new RdfBuilderTestData(
__DIR__ . "/../../data/rdf",
__DIR__ . "/../../data/rdf/SiteLinksRdfBuilder"
);
}
+
return $this->testData;
}
diff --git a/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
index ee63ede..f590df0 100644
--- a/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/TermsRdfBuilderTest.php
@@ -1,11 +1,12 @@
<?php
-namespace Wikibase\Rdf\Test;
+namespace Wikibase\Test\Rdf;
+use PHPUnit_Framework_TestCase;
use Wikibase\Rdf\TermsRdfBuilder;
/**
- * @covers Wikibase\TermsRdfBuilder
+ * @covers Wikibase\Rdf\TermsRdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -15,23 +16,26 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class TermsRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class TermsRdfBuilderTest extends PHPUnit_Framework_TestCase {
- private $testData;
+ /**
+ * @var RdfBuilderTestData|null
+ */
+ private $testData = null;
/**
* Initialize repository data
*
* @return RdfBuilderTestData
*/
- private function getTestData()
- {
- if( empty( $this->testData ) ) {
+ private function getTestData() {
+ if ( $this->testData === null ) {
$this->testData = new RdfBuilderTestData(
__DIR__ . "/../../data/rdf",
__DIR__ . "/../../data/rdf/TermsRdfBuilder"
);
}
+
return $this->testData;
}
diff --git a/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
index 88b13f6..96ff92e 100644
--- a/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/TruthyStatementsRdfBuilderTest.php
@@ -2,12 +2,12 @@
namespace Wikibase\Test\Rdf;
-use Wikibase\Rdf\Test\RdfBuilderTestData;
+use PHPUnit_Framework_TestCase;
use Wikibase\Rdf\SimpleValueRdfBuilder;
use Wikibase\Rdf\TruthyStatementRdfBuilder;
/**
- * @covers Wikibase\TruthyStatementRdfBuilder
+ * @covers Wikibase\Rdf\TruthyStatementRdfBuilder
*
* @group Wikibase
* @group WikibaseRepo
@@ -17,23 +17,26 @@
* @author Daniel Kinzler
* @author Stas Malyshev
*/
-class TruthyStatementRdfBuilderTest extends \PHPUnit_Framework_TestCase {
+class TruthyStatementRdfBuilderTest extends PHPUnit_Framework_TestCase {
- private $testData;
+ /**
+ * @var RdfBuilderTestData|null
+ */
+ private $testData = null;
/**
* Initialize repository data
*
* @return RdfBuilderTestData
*/
- private function getTestData()
- {
- if( empty( $this->testData ) ) {
+ private function getTestData() {
+ if ( $this->testData === null ) {
$this->testData = new RdfBuilderTestData(
__DIR__ . "/../../data/rdf",
__DIR__ .
"/../../data/rdf/TruthyStatementRdfBuilder"
);
}
+
return $this->testData;
}
--
To view, visit https://gerrit.wikimedia.org/r/205853
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I538f33a6da2da3a0b77546749e771dfe415d2c68
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits