Dominic.sauer has submitted this change and it was merged.
Change subject: Refactor DumpMetaInformation as pure value class, using
DumpMetaInformationStore and DumpMetaInformationLookup
......................................................................
Refactor DumpMetaInformation as pure value class, using
DumpMetaInformationStore and DumpMetaInformationLookup
Change-Id: I8de0e2ed3a8460bccff374480caa3a5ae936594d
---
M includes/CrossCheck/Comparer/DataValueComparer.php
M includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
M includes/CrossCheck/CrossChecker.php
M includes/CrossCheck/ReferenceHandler.php
M includes/CrossCheck/Result/CrossCheckResult.php
D includes/DumpMetaInformation.php
A includes/DumpMetaInformation/DumpMetaInformation.php
A includes/DumpMetaInformation/DumpMetaInformationLookup.php
A includes/DumpMetaInformation/DumpMetaInformationStore.php
M includes/Serializer/DumpMetaInformationSerializer.php
M includes/UpdateTable/Importer.php
M specials/SpecialExternalDbs.php
M tests/phpunit/Api/CrossCheckTest.php
M tests/phpunit/CheckForCrossCheckViolationsJobTest.php
D tests/phpunit/CrossCheck/Comparer/DataValueComparerBaseTest.php
A tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
M tests/phpunit/CrossCheck/CrossCheckerTest.php
M tests/phpunit/CrossCheck/ReferenceHandlerTest.php
M tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
A tests/phpunit/DumpMetaInformation/DumpMetaInformationLookupTest.php
A tests/phpunit/DumpMetaInformation/DumpMetaInformationStoreTest.php
A tests/phpunit/DumpMetaInformation/DumpMetaInformationTest.php
D tests/phpunit/DumpMetaInformationTest.php
M tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
M tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
M tests/phpunit/Serializer/SerializerFactoryTest.php
M tests/phpunit/Specials/SpecialCrossCheckTest.php
M tests/phpunit/Specials/SpecialExternalDbsTest.php
M tests/phpunit/UpdateTable/UpdateTableTest.php
29 files changed, 1,051 insertions(+), 723 deletions(-)
Approvals:
Dominic.sauer: Verified; Looks good to me, approved
diff --git a/includes/CrossCheck/Comparer/DataValueComparer.php
b/includes/CrossCheck/Comparer/DataValueComparer.php
index 3860000..7448745 100644
--- a/includes/CrossCheck/Comparer/DataValueComparer.php
+++ b/includes/CrossCheck/Comparer/DataValueComparer.php
@@ -4,7 +4,7 @@
use DataValues\DataValue;
use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
/**
diff --git a/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
b/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
old mode 100644
new mode 100755
index 508f601..0accd91
--- a/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
+++ b/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php
@@ -6,7 +6,7 @@
use DataValues\MultilingualTextValue;
use Doctrine\Instantiator\Exception\InvalidArgumentException;
use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
/**
diff --git a/includes/CrossCheck/CrossChecker.php
b/includes/CrossCheck/CrossChecker.php
index 3c1619d..aa54b09 100644
--- a/includes/CrossCheck/CrossChecker.php
+++ b/includes/CrossCheck/CrossChecker.php
@@ -21,7 +21,8 @@
use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult;
use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList;
use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
/**
@@ -33,10 +34,10 @@
*/
class CrossChecker {
- /**
- * @var LoadBalancer
- */
- private $loadBalancer;
+ /**
+ * @var LoadBalancer
+ */
+ private $loadBalancer;
/**
* @var DatabaseBase
@@ -53,9 +54,9 @@
*/
private $entity;
- /**
- * @param Entity $entity
- */
+ /**
+ * @param Entity $entity
+ */
public function __construct( Entity $entity ) {
$this->entity = $entity;
@@ -72,11 +73,11 @@
* @return CrossCheckResultList
* @throws InvalidArgumentException
*/
- public function crossCheckEntity( $propertyIds = array () ) {
+ public function crossCheckEntity( $propertyIds = array() ) {
$statements = new StatementList();
if ( $propertyIds ) {
if ( $propertyIds instanceof PropertyId ) {
- $propertyIds = array ( $propertyIds );
+ $propertyIds = array( $propertyIds );
}
if ( is_array( $propertyIds ) || $propertyIds
instanceof \Traversable ) {
foreach ( $propertyIds as $propertyId ) {
@@ -119,25 +120,25 @@
}
}
- $resultList = new CrossCheckResultList();
- if( $statements->count() > 0 ) {
- $this->establishDbConnection();
- $applicableDumpIds = $this->getApplicableDumpIds();
+ $resultList = new CrossCheckResultList();
+ if ( $statements->count() > 0 ) {
+ $this->establishDbConnection();
+ $applicableDumpIds = $this->getApplicableDumpIds();
- foreach ( $applicableDumpIds as $identifierPropertyId => $dumpIds
) {
- $identifierPropertyId = new PropertyId( $identifierPropertyId
);
+ foreach ( $applicableDumpIds as $identifierPropertyId
=> $dumpIds ) {
+ $identifierPropertyId = new PropertyId(
$identifierPropertyId );
- $resultList->merge(
- $this->crossCheckStatementsWithIdentifier(
- $statements,
- $identifierPropertyId,
- $dumpIds
- )
- );
- }
+ $resultList->merge(
+
$this->crossCheckStatementsWithIdentifier(
+ $statements,
+ $identifierPropertyId,
+ $dumpIds
+ )
+ );
+ }
- $this->reuseDbConnection();
- }
+ $this->reuseDbConnection();
+ }
return $resultList;
}
@@ -158,7 +159,8 @@
$resultList = new CrossCheckResultList();
foreach ( $externalData as $dumpId => $externalDataPerDump ) {
- $dumpMetaInformation = DumpMetaInformation::get(
$this->db, $dumpId );
+ $dumpMetaInformationLookup = new
DumpMetaInformationLookup();
+ $dumpMetaInformation =
$dumpMetaInformationLookup->findDumpMetaInformationWithId( $dumpId );
foreach ( $externalDataPerDump as $externalId =>
$externalDataPerId ) {
foreach ( $externalDataPerId as $propertyId =>
$externalValues ) {
@@ -227,7 +229,7 @@
* @return array
*/
private function getApplicableDumpIds() {
- $applicableDumps = array ();
+ $applicableDumps = array();
$propertyIds = $this->entity->getStatements()->getPropertyIds();
if ( $propertyIds ) {
@@ -238,7 +240,7 @@
);
foreach ( $result as $row ) {
- $applicableDumps[ $row->identifier_pid ][ ] =
$row->dump_id;
+ $applicableDumps[ $row->identifier_pid ][] =
$row->dump_id;
}
}
@@ -253,13 +255,13 @@
* @return array
*/
private function getExternalIds( PropertyId $identifierPropertyId ) {
- $externalIds = array ();
+ $externalIds = array();
$identifierStatements =
$this->entity->getStatements()->getWithPropertyId( $identifierPropertyId );
foreach ( $identifierStatements as $identifierStatement ) {
$mainSnak = $identifierStatement->getMainSnak();
if ( $mainSnak instanceof PropertyValueSnak ) {
- $externalIds[ ] =
$mainSnak->getDataValue()->getValue();
+ $externalIds[] =
$mainSnak->getDataValue()->getValue();
}
}
@@ -271,30 +273,30 @@
*
* @param array $dumpIds
* @param array $externalIds
- * @param StatementList $statements
+ * @param StatementList $statements
*
* @return array
*/
private function getExternalData( array $dumpIds, array $externalIds,
StatementList $statements ) {
- $externalData = array ();
+ $externalData = array();
if ( $dumpIds && $externalIds ) {
$result = $this->db->select(
DUMP_DATA_TABLE,
- array (
+ array(
'dump_id',
'external_id',
'pid',
'external_value'
),
- array (
+ array(
$this->buildSqlInCondition( 'dump_id',
$dumpIds ),
$this->buildSqlInCondition(
'external_id', $externalIds ),
- $this->buildSqlInCondition( 'pid',
$statements->getPropertyIds() )
+ $this->buildSqlInCondition( 'pid',
$statements->getPropertyIds() )
)
);
foreach ( $result as $row ) {
- $externalData[ $row->dump_id ][
$row->external_id ][ $row->pid ][ ] = $row->external_value;
+ $externalData[ $row->dump_id ][
$row->external_id ][ $row->pid ][] = $row->external_value;
}
}
@@ -303,7 +305,7 @@
/**
* Creates SQL condition for WHERE clauses using the IN operator.
- * If $values is empty, true will be returned.
+ * If $values is empty, true will be returned.
*
* @param string $columnName
* @param array $values
@@ -311,41 +313,40 @@
* @return string
*/
private static function buildSqlInCondition( $columnName, array $values
) {
- if( count($values) > 0 ) {
- $values = array_map(
- function ( $value ) {
- return sprintf( '"%s"', $value );
- },
- $values
- );
+ if ( count( $values ) > 0 ) {
+ $values = array_map(
+ function ( $value ) {
+ return sprintf( '"%s"', $value );
+ },
+ $values
+ );
- return sprintf( '%s in (%s)', $columnName, implode( ',', $values )
);
- }
- else {
- return 'true';
- }
+ return sprintf( '%s in (%s)', $columnName, implode(
',', $values ) );
+ } else {
+ return 'true';
+ }
}
- /**
- * Establishes a database connection using the load balancer
- *
- * @throws MWException
- */
- protected function establishDbConnection() {
- if( !$this->loadBalancer ) {
- $this->loadBalancer = wfGetLB();
- }
+ /**
+ * Establishes a database connection using the load balancer
+ *
+ * @throws MWException
+ */
+ protected function establishDbConnection() {
+ if ( !$this->loadBalancer ) {
+ $this->loadBalancer = wfGetLB();
+ }
- wfWaitForSlaves();
- $this->db = $this->loadBalancer->getConnection( DB_SLAVE );
- }
+ wfWaitForSlaves();
+ $this->db = $this->loadBalancer->getConnection( DB_SLAVE );
+ }
- /**
- * Mark database connection as being available for reuse
- *
- * @throws MWException
- */
- protected function reuseDbConnection( ) {
- $this->loadBalancer->reuseConnection( $this->db );
- }
+ /**
+ * Mark database connection as being available for reuse
+ *
+ * @throws MWException
+ */
+ protected function reuseDbConnection() {
+ $this->loadBalancer->reuseConnection( $this->db );
+ }
}
\ No newline at end of file
diff --git a/includes/CrossCheck/ReferenceHandler.php
b/includes/CrossCheck/ReferenceHandler.php
old mode 100644
new mode 100755
index c4e0b34..d865a24
--- a/includes/CrossCheck/ReferenceHandler.php
+++ b/includes/CrossCheck/ReferenceHandler.php
@@ -11,7 +11,7 @@
use Wikibase\DataModel\Snak\SnakList;
use Wikibase\DataModel\Statement\Statement;
use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
/**
diff --git a/includes/CrossCheck/Result/CrossCheckResult.php
b/includes/CrossCheck/Result/CrossCheckResult.php
old mode 100644
new mode 100755
index 781c5e9..64a9d7f
--- a/includes/CrossCheck/Result/CrossCheckResult.php
+++ b/includes/CrossCheck/Result/CrossCheckResult.php
@@ -5,7 +5,7 @@
use Doctrine\Instantiator\Exception\InvalidArgumentException;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\Repo\WikibaseRepo;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
use WikidataQuality\Result\CheckResult;
diff --git a/includes/DumpMetaInformation.php b/includes/DumpMetaInformation.php
deleted file mode 100644
index 25c57d8..0000000
--- a/includes/DumpMetaInformation.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-namespace WikidataQuality\ExternalValidation;
-
-use DatabaseBase;
-use DateTime;
-use DateTimeZone;
-use Doctrine\Instantiator\Exception\InvalidArgumentException;
-use Doctrine\Instantiator\Exception\UnexpectedValueException;
-use Wikibase\DataModel\Entity\ItemId;
-
-
-/**
- * Class DumpMetaInformation
- *
- * @package WikidataQuality\ExternalValidation\CrossCheck
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class DumpMetaInformation {
-
- /**
- * Id of the dump
- *
- * @var string
- */
- private $dumpId;
-
- /**
- * Id of the item that represents the data source of the dump
- *
- * @var ItemId
- */
- private $sourceItemId;
-
- /**
- * Date of import
- *
- * @var DateTime
- */
- private $importDate;
-
- /**
- * Language of data in the dump
- *
- * @var string
- */
- private $language;
-
- /**
- * Source url of the downloaded dump
- *
- * @var string
- */
- private $sourceUrl;
-
- /**
- * Size of the imported dump
- *
- * @var int
- */
- private $size;
-
- /**
- * Id of the item that represents the license of the database
- *
- * @var ItemId
- */
- private $licenseItemId;
-
- /**
- * @param string $dumpId
- * @param ItemId $sourceItemId
- * @param DateTime $importDate
- * @param string $language
- * @param string $sourceUrl
- * @param int $size
- * @param ItemId $licenseItemId
- */
- public function __construct( $dumpId, ItemId $sourceItemId, DateTime
$importDate, $language, $sourceUrl, $size, ItemId $licenseItemId ) {
- if ( !is_string( $dumpId ) ) {
- throw new InvalidArgumentException( '$dumpId must be
string.' );
- }
- if ( !is_string( $language ) ) {
- throw new InvalidArgumentException( '$language must be
string.' );
- }
- if ( !is_string( $sourceUrl ) ) {
- throw new InvalidArgumentException( '$sourceUrl must be
string.' );
- }
- if ( !is_int( $size ) ) {
- throw new InvalidArgumentException( '$size must be
integer.' );
- }
-
- $this->dumpId = $dumpId;
- $this->sourceItemId = $sourceItemId;
- $this->importDate = $importDate;
- $this->language = $language;
- $this->sourceUrl = $sourceUrl;
- $this->size = $size;
- $this->licenseItemId = $licenseItemId;
- }
-
- /**
- * @return string
- */
- public function getDumpId() {
- return $this->dumpId;
- }
-
- /**
- * @return ItemId
- */
- public function getSourceItemId() {
- return $this->sourceItemId;
- }
-
- /**
- * @return DateTime
- */
- public function getImportDate() {
- return $this->importDate;
- }
-
- /**
- * @return string
- */
- public function getLanguage() {
- return $this->language;
- }
-
- /**
- * @return string
- */
- public function getSourceUrl() {
- return $this->sourceUrl;
- }
-
- /**
- * @return int
- */
- public function getSize() {
- return $this->size;
- }
-
- /**
- * @return ItemId
- */
- public function getLicenseItemId() {
- return $this->licenseItemId;
- }
-
- /**
- * Saves dump meta information to database
- *
- * @param DataBase $db
- */
- public function save( DatabaseBase $db ) {
- $accumulator = array (
- 'dump_id' => $this->getDumpId(),
- 'source_qid' =>
$this->getSourceItemId()->getSerialization(),
- 'import_date' => $this->getImportDate()->format(
'YmdHis' ),
- 'language' => $this->getLanguage(),
- 'source_url' => $this->getSourceUrl(),
- 'size' => $this->getSize(),
- 'license_qid' =>
$this->getLicenseItemId()->getSerialization()
- );
-
- $dumpId = $this->getDumpId();
- $existing = $db->selectRow(
- DUMP_META_TABLE,
- array ( 'dump_id' ),
- array ( "dump_id='$dumpId'" )
- );
-
- if ( $existing ) {
- $result = $db->update(
- DUMP_META_TABLE,
- $accumulator,
- array ( "dump_id='$dumpId'" )
- );
- } else {
- $result = $db->insert(
- DUMP_META_TABLE,
- $accumulator
- );
- }
-
- return $result;
- }
-
- /**
- * Gets DumpMetaInformation for specific dump ids from database
- *
- * @param DatabaseBase $db
- * @param string|array $dumpIds
- *
- * @return array|DumpMetaInformation
- */
- public static function get( DatabaseBase $db, $dumpIds = null ) {
- if ( $dumpIds ) {
- if ( is_string( $dumpIds ) ) {
- $dumpIds = array ( $dumpIds );
- } elseif ( !is_array( $dumpIds ) ) {
- throw new InvalidArgumentException( '$dumpIds
must be array of strings or string.' );
- } else {
- foreach ( $dumpIds as $dumpId ) {
- if ( !is_string( $dumpId ) ) {
- throw new
InvalidArgumentException( '$dumpIds must be array of strings.' );
- }
- }
- }
- }
-
- $conditions = array ();
- if ( $dumpIds ) {
- $formatter = function ( $dumpId ) {
- return sprintf( '"%s"', $dumpId );
- };
- $dumpIds = array_map( $formatter, $dumpIds );
- $conditions[ ] = sprintf( 'dump_id IN (%s)', implode(
',', $dumpIds ) );
- }
-
- $result = $db->select(
- DUMP_META_TABLE,
- array ( 'dump_id', 'source_qid', 'import_date',
'language', 'source_url', 'size', 'license_qid' ),
- $conditions
- );
-
- $dumpMetaInformation = array ();
- foreach ( $result as $row ) {
- $dumpId = $row->dump_id;
- $sourceItemId = new ItemId( $row->source_qid );
- $importDate = DateTime::createFromFormat( 'YmdHis',
$row->import_date, new DateTimeZone( 'UTC' ) );
- if ( !$importDate ) {
- throw new UnexpectedValueException( 'Cannot
convert import_date from violations table to YmdHis format.' );
- }
- $language = $row->language;
- $sourceUrl = $row->source_url;
- $size = (int)$row->size;
- $licenseItemId = new ItemId( $row->license_qid );
-
- $dumpMetaInformation[ $dumpId ] = new
DumpMetaInformation( $dumpId, $sourceItemId, $importDate, $language,
$sourceUrl, $size, $licenseItemId );
- }
-
- if ( $dumpMetaInformation ) {
- if ( $dumpIds && count( $dumpIds ) === 1 ) {
- $dumpMetaInformation = array_values(
$dumpMetaInformation );
- return $dumpMetaInformation[ 0 ];
- } else {
- return $dumpMetaInformation;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/DumpMetaInformation.php
b/includes/DumpMetaInformation/DumpMetaInformation.php
new file mode 100755
index 0000000..83db058
--- /dev/null
+++ b/includes/DumpMetaInformation/DumpMetaInformation.php
@@ -0,0 +1,149 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\DumpMetaInformation;
+
+use DateTime;
+use Doctrine\Instantiator\Exception\InvalidArgumentException;
+use Doctrine\Instantiator\Exception\UnexpectedValueException;
+use Wikibase\DataModel\Entity\ItemId;
+
+
+/**
+ * @package WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformation {
+
+ /**
+ * Id of the dump
+ *
+ * @var string
+ */
+ private $dumpId;
+
+ /**
+ * Id of the item that represents the data source of the dump
+ *
+ * @var ItemId
+ */
+ private $sourceItemId;
+
+ /**
+ * Date of import
+ *
+ * @var DateTime
+ */
+ private $importDate;
+
+ /**
+ * Language of data in the dump
+ *
+ * @var string
+ */
+ private $language;
+
+ /**
+ * Source url of the downloaded dump
+ *
+ * @var string
+ */
+ private $sourceUrl;
+
+ /**
+ * Size of the imported dump
+ *
+ * @var int
+ */
+ private $size;
+
+ /**
+ * Id of the item that represents the license of the database
+ *
+ * @var ItemId
+ */
+ private $licenseItemId;
+
+ /**
+ * @param string $dumpId
+ * @param ItemId $sourceItemId
+ * @param DateTime $importDate
+ * @param string $language
+ * @param string $sourceUrl
+ * @param int $size
+ * @param ItemId $licenseItemId
+ *
+ * @throws InvalidArgumentException
+ */
+ public function __construct( $dumpId, ItemId $sourceItemId, DateTime
$importDate, $language, $sourceUrl, $size, ItemId $licenseItemId ) {
+ if ( !is_string( $dumpId ) ) {
+ throw new InvalidArgumentException( '$dumpId must be
string.' );
+ }
+ if ( !is_string( $language ) ) {
+ throw new InvalidArgumentException( '$language must be
string.' );
+ }
+ if ( !is_string( $sourceUrl ) ) {
+ throw new InvalidArgumentException( '$sourceUrl must be
string.' );
+ }
+ if ( !is_int( $size ) ) {
+ throw new InvalidArgumentException( '$size must be
integer.' );
+ }
+
+ $this->dumpId = $dumpId;
+ $this->sourceItemId = $sourceItemId;
+ $this->importDate = $importDate;
+ $this->language = $language;
+ $this->sourceUrl = $sourceUrl;
+ $this->size = $size;
+ $this->licenseItemId = $licenseItemId;
+ }
+
+ /**
+ * @return string
+ */
+ public function getDumpId() {
+ return $this->dumpId;
+ }
+
+ /**
+ * @return ItemId
+ */
+ public function getSourceItemId() {
+ return $this->sourceItemId;
+ }
+
+ /**
+ * @return DateTime
+ */
+ public function getImportDate() {
+ return $this->importDate;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLanguage() {
+ return $this->language;
+ }
+
+ /**
+ * @return string
+ */
+ public function getSourceUrl() {
+ return $this->sourceUrl;
+ }
+
+ /**
+ * @return int
+ */
+ public function getSize() {
+ return $this->size;
+ }
+
+ /**
+ * @return ItemId
+ */
+ public function getLicenseItemId() {
+ return $this->licenseItemId;
+ }
+}
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/DumpMetaInformationLookup.php
b/includes/DumpMetaInformation/DumpMetaInformationLookup.php
new file mode 100755
index 0000000..3c57499
--- /dev/null
+++ b/includes/DumpMetaInformation/DumpMetaInformationLookup.php
@@ -0,0 +1,151 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\DumpMetaInformation;
+
+use DateTime;
+use DateTimeZone;
+use ResultWrapper;
+use Wikibase\DataModel\Entity\ItemId;
+use Doctrine\Instantiator\Exception\InvalidArgumentException;
+use Doctrine\Instantiator\Exception\UnexpectedValueException;
+use DatabaseBase;
+
+
+/**
+ * @package WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationLookup {
+
+ /**
+ * Gets DumpMetaInformation for specific dump id from database
+ *
+ * @param $dumpId
+ *
+ * @throws InvalidArgumentException
+ *
+ * @return DumpMetaInformation
+ */
+ public function findDumpMetaInformationWithId( $dumpId ) {
+ if ( !is_string( $dumpId ) ) {
+ throw new InvalidArgumentException( '$dumpId must be
string.' );
+ }
+
+ $condition = "dump_id ='$dumpId'";
+ $dumpMetaInformation = $this->getDumpMetaInformationFromDB(
$condition );
+ if ( $dumpMetaInformation ) {
+ $dumpMetaInformation = $dumpMetaInformation[ $dumpId ];
+ }
+ return $dumpMetaInformation;
+ }
+
+ /**
+ * Gets DumpMetaInformation for specific dump ids from database
+ * Returns array in the form 'dumpId' => DumpMetaInformation
+ *
+ * @param array $dumpIds
+ *
+ * @throws InvalidArgumentException
+ *
+ * @return array
+ */
+ public function findDumpMetaInformationWithIds( array $dumpIds ) {
+ foreach ( $dumpIds as $dumpId ) {
+ if ( !is_string( $dumpId ) ) {
+ throw new InvalidArgumentException( '$dumpIds
must contain strings.' );
+ }
+ }
+
+ $conditions = $this->setConditions( $dumpIds );
+ $dumpMetaInformation = $this->getDumpMetaInformationFromDB(
$conditions );
+ return $dumpMetaInformation;
+ }
+
+ /**
+ * Gets all DumpMetaInformation from database
+ * Returns array in the form 'dumpId' => DumpMetaInformation
+ *
+ * @return array
+ */
+ public function findAllDumpMetaInformation() {
+ $dumpMetaInformation = $this->getDumpMetaInformationFromDB();
+ return $dumpMetaInformation;
+ }
+
+ /**
+ * @param array $dumpIds
+ *
+ * @return array
+ */
+ private function setConditions( array $dumpIds ) {
+ $conditions = array();
+ $formatter = function ( $dumpIds ) {
+ return sprintf( '"%s"', $dumpIds );
+ };
+
+ $dumpIds = array_map( $formatter, $dumpIds );
+ $conditions[] = sprintf( 'dump_id IN (%s)', implode( ',',
$dumpIds ) );
+
+ return $conditions;
+ }
+
+ /**
+ * @param string $condition
+ *
+ * @return array
+ */
+ private function getDumpMetaInformationFromDB( $condition = '' ) {
+ $db = $this->getDBConnection();
+
+ $result = $db->select(
+ DUMP_META_TABLE,
+ '*',
+ $condition
+ );
+
+ return $this->buildDumpMetaInformationFromResult( $result );
+ }
+
+ /**
+ * @param ResultWrapper $result
+ *
+ * @throws UnexpectedValueException
+ *
+ * @return null|array
+ */
+ private function buildDumpMetaInformationFromResult( ResultWrapper
$result ) {
+ if ( $result->numRows() === 0 ) {
+ return null;
+ }
+ $dumpMetaInformation = array();
+ foreach ( $result as $row ) {
+ $dumpId = $row->dump_id;
+ $sourceItemId = new ItemId( $row->source_qid );
+ $importDate = DateTime::createFromFormat( 'YmdHis',
$row->import_date, new DateTimeZone( 'UTC' ) );
+ if ( !$importDate ) {
+ throw new UnexpectedValueException( 'Cannot
convert import_date from violations table to YmdHis format.' );
+ }
+ $language = $row->language;
+ $sourceUrl = $row->source_url;
+ $size = (int)$row->size;
+ $licenseItemId = new ItemId( $row->license_qid );
+
+ $dumpMetaInformation[ $dumpId ] = new
DumpMetaInformation( $dumpId, $sourceItemId, $importDate, $language,
$sourceUrl, $size, $licenseItemId );
+ }
+ return $dumpMetaInformation;
+ }
+
+ /**
+ * @throws \DBError
+ * @throws \MWException
+ *
+ * @return DatabaseBase
+ */
+ private function getDBConnection() {
+ wfWaitForSlaves();
+ $loadBalancer = wfGetLB();
+ $db = $loadBalancer->getConnection( DB_MASTER );
+ return $db;
+ }
+}
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/DumpMetaInformationStore.php
b/includes/DumpMetaInformation/DumpMetaInformationStore.php
new file mode 100755
index 0000000..2a6a5d2
--- /dev/null
+++ b/includes/DumpMetaInformation/DumpMetaInformationStore.php
@@ -0,0 +1,77 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\DumpMetaInformation;
+
+/**
+ * @package WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationStore {
+
+ /**
+ * Saves dump meta information to database
+ *
+ * @param DumpMetaInformation $dumpMetaInformation
+ *
+ * @return boolean
+ */
+ public function saveDumpMetaInformation( DumpMetaInformation
$dumpMetaInformation ) {
+
+ $accumulator = $this->getDumpInformationArray( $dumpMetaInformation );
+
+ $db = $this->getDBConnection();
+
+ $dumpId = $dumpMetaInformation->getDumpId();
+ $existing = $db->selectRow(
+ DUMP_META_TABLE,
+ array ( 'dump_id' ),
+ array ( "dump_id='$dumpId'" )
+ );
+
+ if ( $existing ) {
+ $result = $db->update(
+ DUMP_META_TABLE,
+ $accumulator,
+ array ( "dump_id='$dumpId'" )
+ );
+ } else {
+ $result = $db->insert(
+ DUMP_META_TABLE,
+ $accumulator
+ );
+ }
+
+ return $result;
+ }
+
+ /**
+ * @param DumpMetaInformation $dumpMetaInformation
+ *
+ * @return array
+ */
+ private function getDumpInformationArray( DumpMetaInformation
$dumpMetaInformation ) {
+ return array (
+ 'dump_id' => $dumpMetaInformation->getDumpId(),
+ 'source_qid' =>
$dumpMetaInformation->getSourceItemId()->getSerialization(),
+ 'import_date' => $dumpMetaInformation->getImportDate()->format(
'YmdHis' ),
+ 'language' => $dumpMetaInformation->getLanguage(),
+ 'source_url' => $dumpMetaInformation->getSourceUrl(),
+ 'size' => $dumpMetaInformation->getSize(),
+ 'license_qid' =>
$dumpMetaInformation->getLicenseItemId()->getSerialization()
+ );
+ }
+
+ /**
+ * @throws \DBError
+ * @throws \MWException
+ *
+ * @return \DatabaseBase
+ */
+ private function getDBConnection() {
+ wfWaitForSlaves();
+ $loadBalancer = wfGetLB();
+ $db = $loadBalancer->getConnection( DB_MASTER );
+ return $db;
+ }
+}
\ No newline at end of file
diff --git a/includes/Serializer/DumpMetaInformationSerializer.php
b/includes/Serializer/DumpMetaInformationSerializer.php
old mode 100644
new mode 100755
index b263ed3..02ffa60
--- a/includes/Serializer/DumpMetaInformationSerializer.php
+++ b/includes/Serializer/DumpMetaInformationSerializer.php
@@ -6,7 +6,7 @@
use Serializers\DispatchableSerializer;
use Serializers\Exceptions\UnsupportedObjectException;
use Serializers\Serializer;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
/**
diff --git a/includes/UpdateTable/Importer.php
b/includes/UpdateTable/Importer.php
old mode 100644
new mode 100755
index 60d0e39..ce04bbb
--- a/includes/UpdateTable/Importer.php
+++ b/includes/UpdateTable/Importer.php
@@ -9,7 +9,8 @@
use MWException;
use PharData;
use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
/**
@@ -201,11 +202,9 @@
/**
* Inserts meta information stored in csv file into database
*
- * @param DatabaseBase $db
- *
* @return array
*/
- protected function insertMetaInformation( DatabaseBase $db ) {
+ protected function insertMetaInformation() {
if ( !$this->importContext->isQuiet() ) {
print "Insert new dump meta information\n";
}
@@ -224,7 +223,8 @@
intval( $data[ 5 ] ),
new ItemId( $data[ 6 ] )
);
- $metaInformation->save( $db );
+ $dumpMetaInformationStore = new DumpMetaInformationStore();
+ $dumpMetaInformationStore->saveDumpMetaInformation(
$metaInformation );
$dumpIds[ ] = $metaInformation->getDumpId();
diff --git a/specials/SpecialExternalDbs.php b/specials/SpecialExternalDbs.php
old mode 100644
new mode 100755
index 6897fcf..ca88735
--- a/specials/SpecialExternalDbs.php
+++ b/specials/SpecialExternalDbs.php
@@ -8,7 +8,7 @@
use Language;
use Linker;
use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
use WikidataQuality\Html\HtmlTable;
use WikidataQuality\Html\HtmlTableCell;
use WikidataQuality\Specials\SpecialWikidataQualityPage;
@@ -49,10 +49,9 @@
. Html::closeElement( 'h3' )
);
- wfWaitForSlaves();
- $loadBalancer = wfGetLB();
- $db = $loadBalancer->getConnection( DB_SLAVE );
- $dumps = DumpMetaInformation::get( $db );
+
+ $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+ $dumps = $dumpMetaInformationLookup->findAllDumpMetaInformation();
if ( $dumps ) {
$groupedDumpMetaInformation = array ();
diff --git a/tests/phpunit/Api/CrossCheckTest.php
b/tests/phpunit/Api/CrossCheckTest.php
index 6356b98..63e448c 100755
--- a/tests/phpunit/Api/CrossCheckTest.php
+++ b/tests/phpunit/Api/CrossCheckTest.php
@@ -18,7 +18,7 @@
* @group API
* @group medium
*
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
* @uses WikidataQuality\ExternalValidation\CrossCheck\CrossChecker
* @uses WikidataQuality\ExternalValidation\CrossCheck\ReferenceHandler
* @uses
WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer
diff --git a/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
b/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
old mode 100644
new mode 100755
index 7642d8b..2eda54c
--- a/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
+++ b/tests/phpunit/CheckForCrossCheckViolationsJobTest.php
@@ -17,7 +17,7 @@
use DataValues\StringValue;
use Wikibase\Repo\WikibaseRepo;
use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
use WikidataQuality\ExternalValidation\CheckForCrossCheckViolationsJob;
@@ -30,7 +30,7 @@
* @uses WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult
* @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult
* @uses
WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
* @uses WikidataQuality\ExternalValidation\CrossCheck\CrossChecker
*
* @author BP2014N1
diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerBaseTest.php
b/tests/phpunit/CrossCheck/Comparer/DataValueComparerBaseTest.php
deleted file mode 100644
index ea12f77..0000000
--- a/tests/phpunit/CrossCheck/Comparer/DataValueComparerBaseTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-namespace WikidataQuality\ExternalValidation\Tests\CrossCheck\Comparer;
-
-use DataValues\DataValue;
-use WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer;
-
-/**
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-abstract class DataValueComparerBaseTest extends \MediaWikiTestCase {
-
- /**
- * @return DataValueComparer
- */
- protected abstract function buildComparer();
-
-
- public function testImplementsDataValueComparerInterface() {
- $this->assertInstanceOf(
'WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer',
$this->buildComparer() );
- }
-
-
- /**
- * @dataProvider comparableProvider
- */
- public function testIsComparerForReturnsTrue( DataValue $dataValue ) {
- $comparer = $this->buildComparer();
- $this->assertTrue( $comparer->isComparerFor( $dataValue->getType() ) );
- }
-
- public abstract function comparableProvider();
-
-
- /**
- * @dataProvider nonComparableProvider
- */
- public function testIsComparerForReturnsFalse( DataValue $dataValue ) {
- $comparer = $this->buildComparer();
- $this->assertFalse( $comparer->isComparerFor( $dataValue->getType() )
);
- }
-
- public abstract function nonComparableProvider();
-
-
- /**
- * @dataProvider nonComparableProvider
- */
- public function testComparerThrowsInvalidArgumentException( DataValue
$dataValue ) {
- $this->setExpectedException( 'InvalidArgumentException' );
- $this->buildComparer()->compare( $dataValue, array(),
$this->getDumpMetaInformationMock() );
- }
-
-
- /**
- * @dataProvider comparisonProvider
- */
- public function testComparison( $expectedResult, $localValue,
$externalValues, $dumpMetaInformation = null ) {
- if ( !$dumpMetaInformation ) {
- $dumpMetaInformation = $this->getDumpMetaInformationMock();
- }
-
- $actualResult = $this->buildComparer()->compare( $localValue,
$externalValues, $dumpMetaInformation );
-
- $this->assertEquals( $expectedResult, $actualResult );
- }
-
- public abstract function comparisonProvider();
-
-
- protected function getDumpMetaInformationMock( $language = 'en' ) {
- $mock = $this->getMockBuilder(
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
- ->disableOriginalConstructor()
- ->setMethods( array( 'getLanguage' ) )
- ->getMock();
-
- $mock->expects( $this->any() )
- ->method( 'getLanguage' )
- ->willReturn( $language );
-
- return $mock;
- }
-}
\ No newline at end of file
diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
new file mode 100644
index 0000000..4f11cff
--- /dev/null
+++ b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\Tests\CrossCheck\Comparer;
+
+
+/**
+ * @group WikidataQuality
+ * @group WikidataQuality\ExternalValidation
+ *
+ * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult
+ * @uses
WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+abstract class DataValueComparerTestBase extends \MediaWikiTestCase {
+ /**
+ * @dataProvider executeDataProvider
+ */
+ public function testExecute( $dumpMetaInformation, $localValue,
$externalValues, $expectedDataMismatch, $expectedExternalValues ) {
+ $comparer = $this->createComparer( $dumpMetaInformation, $localValue,
$externalValues );
+ $result = $comparer->execute();
+
+ if ( $result ) {
+ $this->assertEquals( $localValue, $result->getLocalValue() );
+ $this->assertEquals( $expectedExternalValues,
$result->getExternalValues() );
+ $this->assertEquals( $expectedDataMismatch,
$result->hasDataMismatchOccurred() );
+ } else {
+ $this->assertNull( $expectedDataMismatch );
+ $this->assertNull( $expectedExternalValues );
+ }
+ }
+
+ /*
+ * Test cases for testExecute
+ * @return array
+ */
+ public abstract function executeDataProvider();
+
+ /*
+ * Returns new instance of the comparer being tested with given arguments.
+ *
+ * @return DataValueComparer
+ */
+ protected abstract function createComparer( $dumpMetaInformation,
$localValue, $externalValues );
+
+
+ /**
+ * Returns DumpMetaInformation mock with given language
+ *
+ * @param $language
+ * @return \PHPUnit_Framework_MockObject_MockObject
+ */
+ protected function getDumpMetaInformationMock( $language ) {
+ $mock = $this->getMockBuilder(
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
+ ->setMethods( array( 'getLanguage' ) )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $mock->expects( $this->any() )
+ ->method( 'getLanguage' )
+ ->willReturn( $language );
+
+ return $mock;
+ }
+}
diff --git a/tests/phpunit/CrossCheck/CrossCheckerTest.php
b/tests/phpunit/CrossCheck/CrossCheckerTest.php
index a4f8577..1f951d4 100755
--- a/tests/phpunit/CrossCheck/CrossCheckerTest.php
+++ b/tests/phpunit/CrossCheck/CrossCheckerTest.php
@@ -2,7 +2,6 @@
namespace WikidataQuality\ExternalValidation\Tests\CrossCheck;
-use DataValues\MonolingualTextValue;
use DataValues\StringValue;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
@@ -25,7 +24,7 @@
* @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult
* @uses
WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult
* @uses WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
* @uses WikidataQuality\ExternalValidation\CrossCheck\ReferenceHandler
*
* @author BP2014N1
diff --git a/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
b/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
old mode 100644
new mode 100755
index 6baa0c8..18de5b3
--- a/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
+++ b/tests/phpunit/CrossCheck/ReferenceHandlerTest.php
@@ -120,7 +120,7 @@
}
private function getDumpMetaInformationMock( ItemId $sourceItemId ) {
- $mock = $this->getMockBuilder(
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
+ $mock = $this->getMockBuilder(
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
->disableOriginalConstructor()
->getMock();
$mock->expects( $this->any() )
diff --git a/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
b/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
old mode 100644
new mode 100755
index a9699af..e4f2d5e
--- a/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
+++ b/tests/phpunit/CrossCheck/Result/CrossCheckResultTest.php
@@ -134,7 +134,7 @@
private function getDumpMetaInformationMock()
{
- $mock = $this->getMockBuilder(
'WikidataQuality\ExternalValidation\DumpMetaInformation' )
+ $mock = $this->getMockBuilder(
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
->disableOriginalConstructor()
->getMock();
diff --git
a/tests/phpunit/DumpMetaInformation/DumpMetaInformationLookupTest.php
b/tests/phpunit/DumpMetaInformation/DumpMetaInformationLookupTest.php
new file mode 100755
index 0000000..78c0067
--- /dev/null
+++ b/tests/phpunit/DumpMetaInformation/DumpMetaInformationLookupTest.php
@@ -0,0 +1,212 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\Tests\DumpMetaInformation;
+
+use DateTime;
+use Wikibase\DataModel\Entity\ItemId;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
+
+
+/**
+ * @covers
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup
+ *
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ *
+ * @group Database
+ * @group medium
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationLookupTest extends \MediaWikiTestCase {
+
+ /**
+ * @var array
+ */
+ private $dumpMetaInformation = array();
+
+ public function __construct( $name = null, $data = array(), $dataName =
null ) {
+ parent::__construct( $name, $data, $dataName );
+
+ // Create example dump meta information
+ $this->dumpMetaInformation['foo'] = new DumpMetaInformation(
+ 'foo',
+ new ItemId( 'Q1' ),
+ new DateTime( '2015-01-01 00:00:00' ),
+ 'en',
+ 'http://www.foo.bar',
+ 42,
+ new ItemId( 'Q6938433' )
+ );
+ $this->dumpMetaInformation['bar'] = new DumpMetaInformation(
+ 'bar',
+ new ItemId( 'Q2' ),
+ new DateTime( '2020-01-01 12:12:12' ),
+ 'de',
+ 'http://www.fu.bar',
+ 4242,
+ new ItemId( 'Q6938433' )
+ );
+ }
+
+ public function setUp() {
+ parent::setUp();
+
+ // Specify database table used by this test
+ $this->tablesUsed[] = DUMP_META_TABLE;
+ }
+
+ /**
+ * Adds temporary test data to database
+ *
+ * @throws \DBUnexpectedError
+ */
+ public function addDBData() {
+ // Truncate tables
+ $this->db->delete(
+ DUMP_META_TABLE,
+ '*'
+ );
+
+ // Insert example dump meta information
+ foreach ( $this->dumpMetaInformation as $dumpMetaInformation ) {
+ $this->db->insert(
+ DUMP_META_TABLE,
+ array(
+ 'dump_id' =>
$dumpMetaInformation->getDumpId(),
+ 'source_qid' =>
$dumpMetaInformation->getSourceItemId()->getSerialization(),
+ 'import_date' =>
$dumpMetaInformation->getImportDate()->format( 'YmdHis' ),
+ 'language' =>
$dumpMetaInformation->getLanguage(),
+ 'source_url' =>
$dumpMetaInformation->getSourceUrl(),
+ 'size' =>
$dumpMetaInformation->getSize(),
+ 'license_qid' =>
$dumpMetaInformation->getLicenseItemId()
+ )
+ );
+ }
+ }
+
+ /**
+ * @dataProvider findDumpMetaInformationWithIdDataProvider
+ */
+ public function testFindDumpMetaInformationWithId( $dumpId,
$expectedDumpMetaInformation, $expectedException ) {
+ $this->setExpectedException( $expectedException );
+
+ $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+ $dumpMetaInformation =
$dumpMetaInformationLookup->findDumpMetaInformationWithId( $dumpId );
+
+ $this->assertEquals( $expectedDumpMetaInformation,
$dumpMetaInformation );
+ }
+
+ /**
+ * @return array
+ */
+ public function findDumpMetaInformationWithIdDataProvider() {
+ return array(
+ // Single id
+ array(
+ 'foo',
+ $this->dumpMetaInformation['foo'],
+ null
+ ),
+ // Non-existent id
+ array(
+ 'foobar',
+ null,
+ null
+ ),
+ // Invalid ids
+ array(
+ 42,
+ null,
+ 'InvalidArgumentException'
+ ),
+ array(
+ array( 42 ),
+ null,
+ 'InvalidArgumentException'
+ ),
+ array(
+ null,
+ null,
+ 'InvalidArgumentException'
+ )
+ );
+ }
+
+ /**
+ * @dataProvider findDumpMetaInformationWithIdsDataProvider
+ */
+ public function testFindDumpMetaInformationWithIds( $dumpIds,
$expectedDumpMetaInformation, $expectedException ) {
+ $this->setExpectedException( $expectedException );
+
+ $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+ $dumpMetaInformation =
$dumpMetaInformationLookup->findDumpMetaInformationWithIds( $dumpIds );
+
+ $this->assertEquals( $expectedDumpMetaInformation,
$dumpMetaInformation );
+ }
+
+ /**
+ * @return array
+ */
+ public function findDumpMetaInformationWithIdsDataProvider() {
+ return array(
+ // Multiple ids
+ array(
+ array(
+ 'foo',
+ 'bar'
+ ),
+ array(
+ 'foo' =>
$this->dumpMetaInformation['foo'],
+ 'bar' =>
$this->dumpMetaInformation['bar']
+ ),
+ null
+ ),
+ // Non-existent id
+ array(
+ array( 'foobar' ),
+ null,
+ null
+ ),
+ // Invalid ids
+ array(
+ array( 42 ),
+ null,
+ 'InvalidArgumentException'
+ )
+ );
+ }
+
+ public function testFindAllDumpMetaInformation() {
+
+ $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+ $dumpMetaInformation =
$dumpMetaInformationLookup->findAllDumpMetaInformation();
+ $expectedDumpMetaInformation = array(
+ 'foo' => $this->dumpMetaInformation['foo'],
+ 'bar' => $this->dumpMetaInformation['bar']
+ );
+
+ $this->assertEquals( $expectedDumpMetaInformation,
$dumpMetaInformation );
+ }
+
+ public function testInvalidDateFormat() {
+ $this->db->insert(
+ DUMP_META_TABLE,
+ array(
+ 'dump_id' => 'foobar',
+ 'source_qid' => 'Q1',
+ 'import_date' => '2015-01-01 00:00:00',
+ 'language' => 'en',
+ 'source_url' => 'http://www.foo.baz',
+ 'size' => 42,
+ 'license_qid' => 'Q6938433'
+ ));
+
+ $this->setExpectedException( 'UnexpectedValueException' );
+
+ $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+ $dumpMetaInformationLookup->findDumpMetaInformationWithId(
'foobar' );
+ }
+}
+
\ No newline at end of file
diff --git a/tests/phpunit/DumpMetaInformation/DumpMetaInformationStoreTest.php
b/tests/phpunit/DumpMetaInformation/DumpMetaInformationStoreTest.php
new file mode 100755
index 0000000..5640799
--- /dev/null
+++ b/tests/phpunit/DumpMetaInformation/DumpMetaInformationStoreTest.php
@@ -0,0 +1,124 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\Tests\DumpMetaInformation;
+
+use DateTime;
+use Wikibase\DataModel\Entity\ItemId;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
+
+/**
+ * @covers
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
+ *
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup
+ *
+ * @group Database
+ * @group medium
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationStoreTest extends \MediaWikiTestCase {
+
+ /**
+ * @var array
+ */
+ private $dumpMetaInformation = array();
+
+ public function __construct( $name = null, $data = array(), $dataName =
null ) {
+ parent::__construct( $name, $data, $dataName );
+
+ // Create example dump meta information
+ $this->dumpMetaInformation = new DumpMetaInformation(
+ 'foo',
+ new ItemId( 'Q1' ),
+ new DateTime( '2015-01-01 00:00:00' ),
+ 'en',
+ 'http://www.foo.bar',
+ 42,
+ new ItemId( 'Q6938433' )
+ );
+ }
+
+ public function setUp() {
+ parent::setUp();
+
+ // Specify database table used by this test
+ $this->tablesUsed[ ] = DUMP_META_TABLE;
+ }
+
+ /**
+ * Adds temporary test data to database
+ *
+ * @throws \DBUnexpectedError
+ */
+ public function addDBData() {
+ // Truncate tables
+ $this->db->delete(
+ DUMP_META_TABLE,
+ '*'
+ );
+
+ // Insert example dump meta information
+ $this->db->insert(
+ DUMP_META_TABLE,
+ array(
+ 'dump_id' => $this->dumpMetaInformation->getDumpId(),
+ 'source_qid' =>
$this->dumpMetaInformation->getSourceItemId()->getSerialization(),
+ 'import_date' =>
$this->dumpMetaInformation->getImportDate()->format( 'YmdHis' ),
+ 'language' => $this->dumpMetaInformation->getLanguage(),
+ 'source_url' => $this->dumpMetaInformation->getSourceUrl(),
+ 'size' => $this->dumpMetaInformation->getSize(),
+ 'license_qid' => $this->dumpMetaInformation->getLicenseItemId()
+ )
+ );
+ }
+
+ /**
+ * @dataProvider saveDumpMetaInformationDataProvider
+ */
+ public function testSaveDumpMetaInformation( $dumpId, $sourceItemId,
$importDate, $language, $sourceUrl, $size, $license ) {
+
+ $dumpMetaInformation = new DumpMetaInformation( $dumpId,
$sourceItemId, $importDate, $language, $sourceUrl, $size, $license );
+
+ $dumpMetaInformationStore = new DumpMetaInformationStore();
+ $dumpMetaInformationStore->saveDumpMetaInformation(
$dumpMetaInformation );
+
+ $dumpMetaInformationLookup = new DumpMetaInformationLookup();
+ $metaInformationFromDatabase =
$dumpMetaInformationLookup->findDumpMetaInformationWithId( $dumpId );
+
+ $this->assertEquals( $dumpMetaInformation,
$metaInformationFromDatabase );
+ }
+
+ /**
+ * Test cases for testSaveDumpMetaInformation
+ */
+ public function saveDumpMetaInformationDataProvider() {
+
+ return array(
+ // Update existing one
+ array(
+ $this->dumpMetaInformation->getDumpId(),
+ $this->dumpMetaInformation->getSourceItemId(),
+ $this->dumpMetaInformation->getImportDate(),
+ 'de',
+ $this->dumpMetaInformation->getSourceUrl(),
+ $this->dumpMetaInformation->getSize(),
+ $this->dumpMetaInformation->getLicenseItemId()
+ ),
+ // Insert new one
+ array(
+ 'fubar',
+ new ItemId( 'Q3' ),
+ new DateTime( '2015-01-01 00:00:00' ),
+ 'en',
+ 'http://www.fubar.com',
+ 42,
+ new ItemId( 'Q6938433' )
+ )
+ );
+ }
+}
+
\ No newline at end of file
diff --git a/tests/phpunit/DumpMetaInformation/DumpMetaInformationTest.php
b/tests/phpunit/DumpMetaInformation/DumpMetaInformationTest.php
new file mode 100755
index 0000000..fc361cf
--- /dev/null
+++ b/tests/phpunit/DumpMetaInformation/DumpMetaInformationTest.php
@@ -0,0 +1,158 @@
+<?php
+
+namespace WikidataQuality\ExternalValidation\Tests\DumpMetaInformation;
+
+use DateTime;
+use Wikibase\DataModel\Entity\Item;
+use Wikibase\DataModel\Entity\ItemId;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+
+/**
+ * @covers
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class DumpMetaInformationTest extends \MediaWikiTestCase {
+
+ /**
+ * @var DumpMetaInformation
+ */
+ private $dumpMetaInformation;
+
+ public function __construct( $name = null, $data = array(), $dataName =
null ) {
+ parent::__construct( $name, $data, $dataName );
+
+ // Create example dump meta information
+ $this->dumpMetaInformation = new DumpMetaInformation(
+ 'foo',
+ new ItemId( 'Q1' ),
+ new DateTime( '2015-01-01 00:00:00' ),
+ 'en',
+ 'http://www.foo.bar',
+ 42,
+ new ItemId( 'Q6938433' )
+ );
+ }
+
+ /**
+ * @dataProvider constructDataProvider
+ */
+ public function testConstruct( $dumpId, $sourceItemId, $importDate,
$language, $sourceUrl, $size, $licenseItemId, $expectedException = null ) {
+ if( $expectedException ) {
+ $this->setExpectedException( $expectedException );
+ }
+
+ $metaInformation = new DumpMetaInformation( $dumpId, $sourceItemId,
$importDate, $language, $sourceUrl, $size, $licenseItemId );
+
+ $this->assertEquals( $sourceItemId,
$metaInformation->getSourceItemId() );
+ $this->assertEquals( $importDate, $metaInformation->getImportDate() );
+ $this->assertEquals( $language, $metaInformation->getLanguage() );
+ $this->assertEquals( $sourceUrl, $metaInformation->getSourceUrl() );
+ $this->assertEquals( $size, $metaInformation->getSize() );
+ $this->assertEquals( $licenseItemId,
$metaInformation->getLicenseItemId() );
+ }
+
+ /**
+ * Test cases for testConstruct
+ *
+ * @return array
+ */
+ public function constructDataProvider() {
+ $dumpId = 'foobar';
+ $sourceItemId = new ItemId( 'Q123' );
+ $importDate = new DateTime( '30-11-2015' );
+ $language = 'de';
+ $sourceUrl = 'http://randomurl.tld';
+ $size = 42;
+ $licenseItemId = new ItemId( 'Q6938433' );
+
+ return array(
+ array(
+ $dumpId,
+ $sourceItemId,
+ $importDate,
+ $language,
+ $sourceUrl,
+ $size,
+ $licenseItemId
+ ),
+ array(
+ 42,
+ $sourceItemId,
+ $importDate,
+ $language,
+ $sourceUrl,
+ $size,
+ $licenseItemId,
+ 'InvalidArgumentException'
+ ),
+ array(
+ $dumpId,
+ $sourceItemId,
+ $importDate,
+ 42,
+ $sourceUrl,
+ $size,
+ $licenseItemId,
+ 'InvalidArgumentException'
+ ),
+ array(
+ $dumpId,
+ $sourceItemId,
+ $importDate,
+ $language,
+ 42,
+ $size,
+ $licenseItemId,
+ 'InvalidArgumentException'
+ ),
+ array(
+ $dumpId,
+ $sourceItemId,
+ $importDate,
+ $language,
+ $sourceUrl,
+ '42',
+ $licenseItemId,
+ 'InvalidArgumentException'
+ )
+ );
+ }
+
+ public function testGetDumpId() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getDumpId(), 'foo' );
+ }
+
+ public function testGetSourceItemId() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getSourceItemId(),
new ItemId( 'Q1' ) );
+ }
+
+ public function testGetImportDate() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getImportDate(), new
DateTime( '2015-01-01 00:00:00' ) );
+ }
+
+ public function testGetLanguage() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getLanguage(), 'en' );
+ }
+
+ public function testGetSourceUrl() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getSourceUrl(),
'http://www.foo.bar' );
+ }
+
+ public function testGetSize() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getSize(), 42 );
+ }
+
+ public function testGetLicenseItemId() {
+
+ $this->assertEquals( $this->dumpMetaInformation->getLicenseItemId(),
new ItemId( 'Q6938433' ) );
+ }
+}
+
\ No newline at end of file
diff --git a/tests/phpunit/DumpMetaInformationTest.php
b/tests/phpunit/DumpMetaInformationTest.php
deleted file mode 100644
index 45f9d1b..0000000
--- a/tests/phpunit/DumpMetaInformationTest.php
+++ /dev/null
@@ -1,277 +0,0 @@
-<?php
-
-namespace WikidataQuality\ExternalValidation\Tests\DumpMetaInformation;
-
-use DateTime;
-use Wikibase\DataModel\Entity\Item;
-use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
-
-/**
- * @covers WikidataQuality\ExternalValidation\DumpMetaInformation
- *
- * @group Database
- * @group medium
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class DumpMetaInformationTest extends \MediaWikiTestCase {
- /**
- * @var array
- */
- private $dumpMetaInformation = array();
-
-
- public function __construct( $name = null, $data = array(), $dataName =
null ) {
- parent::__construct( $name, $data, $dataName );
-
- // Create example dump meta information
- $this->dumpMetaInformation[ 'foo' ] = new DumpMetaInformation(
- 'foo',
- new ItemId( 'Q1' ),
- new DateTime( '2015-01-01 00:00:00' ),
- 'en',
- 'http://www.foo.bar',
- 42,
- new ItemId( 'Q6938433' )
- );
- $this->dumpMetaInformation[ 'bar' ] = new DumpMetaInformation(
- 'bar',
- new ItemId( 'Q2' ),
- new DateTime( '2020-01-01 12:12:12' ),
- 'de',
- 'http://www.fu.bar',
- 4242,
- new ItemId( 'Q6938433' )
- );
- }
-
-
- public function setUp() {
- parent::setUp();
-
- // Specify database table used by this test
- $this->tablesUsed[ ] = DUMP_META_TABLE;
- }
-
- /**
- * Adds temporary test data to database
- * @throws \DBUnexpectedError
- */
- public function addDBData() {
- // Truncate tables
- $this->db->delete(
- DUMP_META_TABLE,
- '*'
- );
-
- // Insert example dump meta information
- foreach ( $this->dumpMetaInformation as $dumpMetaInformation ) {
- $this->db->insert(
- DUMP_META_TABLE,
- array(
- 'dump_id' => $dumpMetaInformation->getDumpId(),
- 'source_qid' =>
$dumpMetaInformation->getSourceItemId()->getSerialization(),
- 'import_date' =>
$dumpMetaInformation->getImportDate()->format( 'YmdHis' ),
- 'language' => $dumpMetaInformation->getLanguage(),
- 'source_url' => $dumpMetaInformation->getSourceUrl(),
- 'size' => $dumpMetaInformation->getSize(),
- 'license_qid' => $dumpMetaInformation->getLicenseItemId()
- )
- );
- }
- }
-
-
- /**
- * @dataProvider constructDataProvider
- */
- public function testConstruct( $dumpId, $sourceItemId, $importDate,
$language, $sourceUrl, $size, $licenseItemId, $expectedException = null ) {
- if( $expectedException ) {
- $this->setExpectedException( $expectedException );
- }
-
- $metaInformation = new DumpMetaInformation( $dumpId, $sourceItemId,
$importDate, $language, $sourceUrl, $size, $licenseItemId );
-
- $this->assertEquals( $sourceItemId,
$metaInformation->getSourceItemId() );
- $this->assertEquals( $importDate, $metaInformation->getImportDate() );
- $this->assertEquals( $language, $metaInformation->getLanguage() );
- $this->assertEquals( $sourceUrl, $metaInformation->getSourceUrl() );
- $this->assertEquals( $size, $metaInformation->getSize() );
- $this->assertEquals( $licenseItemId,
$metaInformation->getLicenseItemId() );
- }
-
- /**
- * Test cases for testConstruct
- * @return array
- */
- public function constructDataProvider() {
- $dumpId = 'foobar';
- $sourceItemId = new ItemId( 'Q123' );
- $importDate = new DateTime( '30-11-2015' );
- $language = 'de';
- $sourceUrl = 'http://randomurl.tld';
- $size = 42;
- $licenseItemId = new ItemId( 'Q6938433' );
-
- return array(
- array(
- $dumpId,
- $sourceItemId,
- $importDate,
- $language,
- $sourceUrl,
- $size,
- $licenseItemId
- ),
- array(
- 42,
- $sourceItemId,
- $importDate,
- $language,
- $sourceUrl,
- $size,
- $licenseItemId,
- 'InvalidArgumentException'
- ),
- array(
- $dumpId,
- $sourceItemId,
- $importDate,
- 42,
- $sourceUrl,
- $size,
- $licenseItemId,
- 'InvalidArgumentException'
- ),
- array(
- $dumpId,
- $sourceItemId,
- $importDate,
- $language,
- 42,
- $size,
- $licenseItemId,
- 'InvalidArgumentException'
- ),
- array(
- $dumpId,
- $sourceItemId,
- $importDate,
- $language,
- $sourceUrl,
- '42',
- $licenseItemId,
- 'InvalidArgumentException'
- )
- );
- }
-
-
- /**
- * @dataProvider getDumpMetaInformationDataProvider
- */
- public function testGetDumpMetaInformation( $dumpIds,
$expectedDumpMetaInformation, $expectedException ) {
- $this->setExpectedException( $expectedException );
-
- $this->assertEquals( $expectedDumpMetaInformation,
DumpMetaInformation::get( $this->db, $dumpIds ) );
- }
-
- /**
- * @return array
- */
- public function getDumpMetaInformationDataProvider() {
- return array(
- // Single id
- array(
- 'foo',
- $this->dumpMetaInformation[ 'foo' ],
- null
- ),
- // Multiple ids
- array(
- array(
- 'foo',
- 'bar'
- ),
- array(
- 'foo' => $this->dumpMetaInformation[ 'foo' ],
- 'bar' => $this->dumpMetaInformation[ 'bar' ]
- ),
- null
- ),
- // No specific ids
- array(
- null,
- array(
- 'foo' => $this->dumpMetaInformation[ 'foo' ],
- 'bar' => $this->dumpMetaInformation[ 'bar' ]
- ),
- null
- ),
- // Non-existent id
- array(
- 'foobar',
- null,
- null
- ),
- // Invalid ids
- array(
- 42,
- null,
- 'InvalidArgumentException'
- ),
- array(
- array( 42 ),
- null,
- 'InvalidArgumentException'
- )
- );
- }
-
-
- /**
- * @dataProvider saveDumpMetaInformationDataProvider
- */
- public function testSaveDumpMetaInformation( $dumpId, $sourceItemId,
$importDate, $language, $sourceUrl, $size, $license ) {
-
- $dumpMetaInformation = new DumpMetaInformation( $dumpId,
$sourceItemId, $importDate, $language, $sourceUrl, $size, $license );
- $dumpMetaInformation->save( $this->db );
-
- $metaInformationFromDatabase = DumpMetaInformation::get( $this->db,
$dumpId );
-
- $this->assertEquals( $dumpMetaInformation,
$metaInformationFromDatabase );
- }
-
-
- /**
- * Test cases for testSaveDumpMetaInformation
- */
- public function saveDumpMetaInformationDataProvider() {
-
- return array(
- // Update existing one
- array(
- 'foo',
- new ItemId( 'Q1' ),
- new DateTime( '2015-01-01 00:00:00' ),
- 'de',
- 'http://www.foo.bar',
- 42,
- new ItemId( 'Q6938433' )
- ),
- // Insert new one
- array(
- 'fubar',
- new ItemId( 'Q3' ),
- new DateTime( '2015-01-01 00:00:00' ),
- 'en',
- 'http://www.fubar.com',
- 42,
- new ItemId( 'Q6938433' )
- )
- );
- }
-}
-
\ No newline at end of file
diff --git a/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
b/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
old mode 100644
new mode 100755
index 8b04eb7..692ff41
--- a/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
+++ b/tests/phpunit/Serializer/CrossCheckResultSerializerTest.php
@@ -32,7 +32,7 @@
new CrossCheckResult(
new PropertyId( 'P42' ),
'Q42$26ca5e18-90fb-4c5c-bb22-ed8a70f1948f',
- $this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\DumpMetaInformation' ),
+ $this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' ),
$this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult' ),
$this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult' )
)
@@ -64,7 +64,7 @@
new CrossCheckResult(
new PropertyId( 'P42' ),
'Q42$26ca5e18-90fb-4c5c-bb22-ed8a70f1948f',
- $this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\DumpMetaInformation' ),
+ $this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' ),
$this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult' ),
$this->getMockWithoutConstructor(
'WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult' )
)
diff --git a/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
b/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
old mode 100644
new mode 100755
index 0486873..aa69170
--- a/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
+++ b/tests/phpunit/Serializer/DumpMetaInformationSerializerTest.php
@@ -4,13 +4,13 @@
use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
use
WikidataQuality\ExternalValidation\Serializer\DumpMetaInformationSerializer;
/**
* @covers
WikidataQuality\ExternalValidation\Serializer\DumpMetaInformationSerializer
*
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
*
* @author BP2014N1
* @license GNU GPL v2+
diff --git a/tests/phpunit/Serializer/SerializerFactoryTest.php
b/tests/phpunit/Serializer/SerializerFactoryTest.php
old mode 100644
new mode 100755
index fbff98f..5a8c6ce
--- a/tests/phpunit/Serializer/SerializerFactoryTest.php
+++ b/tests/phpunit/Serializer/SerializerFactoryTest.php
@@ -18,7 +18,7 @@
use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult;
use WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList;
use WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
use WikidataQuality\ExternalValidation\Serializer\SerializerFactory;
/**
@@ -28,7 +28,7 @@
* @uses WikidataQuality\ExternalValidation\CrossCheck\Result\ReferenceResult
* @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult
* @uses
WikidataQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
* @uses WikidataQuality\ExternalValidation\Serializer\IndexedTagsSerializer
* @uses WikidataQuality\ExternalValidation\Serializer\CompareResultSerializer
* @uses
WikidataQuality\ExternalValidation\Serializer\ReferenceResultSerializer
diff --git a/tests/phpunit/Specials/SpecialCrossCheckTest.php
b/tests/phpunit/Specials/SpecialCrossCheckTest.php
index 9573fc7..9b12a19 100755
--- a/tests/phpunit/Specials/SpecialCrossCheckTest.php
+++ b/tests/phpunit/Specials/SpecialCrossCheckTest.php
@@ -14,7 +14,8 @@
use Wikibase\DataModel\Statement\Statement;
use Wikibase\Lib\ClaimGuidGenerator;
use Wikibase\Repo\WikibaseRepo;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
use Wikibase\DataModel\Entity\EntityId;
/**
@@ -23,7 +24,8 @@
* @group Database
* @group medium
*
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
* @uses WikidataQuality\ExternalValidation\CrossCheck\CrossChecker
* @uses WikidataQuality\ExternalValidation\CrossCheck\ReferenceHandler
* @uses
WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer
@@ -156,7 +158,8 @@
42,
new ItemId( 'Q6938433' )
);
- $dumpMetaInformation->save( $this->db );
+ $dumpMetaInformationStore = new DumpMetaInformationStore();
+ $dumpMetaInformationStore->saveDumpMetaInformation(
$dumpMetaInformation );
// Insert identifier property
$this->db->insert(
diff --git a/tests/phpunit/Specials/SpecialExternalDbsTest.php
b/tests/phpunit/Specials/SpecialExternalDbsTest.php
old mode 100644
new mode 100755
index cb36811..6ac9c86
--- a/tests/phpunit/Specials/SpecialExternalDbsTest.php
+++ b/tests/phpunit/Specials/SpecialExternalDbsTest.php
@@ -4,7 +4,8 @@
use Wikibase\Test\SpecialPageTestBase;
use WikidataQuality\ExternalValidation\Specials\SpecialExternalDbs;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
use Wikibase\DataModel\Entity\ItemId;
/**
@@ -13,7 +14,8 @@
* @group Database
* @group medium
*
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
* @uses WikidataQuality\Html\HtmlTable
* @uses WikidataQuality\Html\HtmlTableHeader
* @uses WikidataQuality\Html\HtmlTableCell
@@ -62,8 +64,8 @@
42,
new ItemId( 'Q6938433' )
);
-
- $dumpMetaInformation->save( $this->db );
+ $dumpMetaInformationStore = new DumpMetaInformationStore();
+ $dumpMetaInformationStore->saveDumpMetaInformation(
$dumpMetaInformation );
}
/**
diff --git a/tests/phpunit/UpdateTable/UpdateTableTest.php
b/tests/phpunit/UpdateTable/UpdateTableTest.php
old mode 100644
new mode 100755
index e06bf84..a8a6daa
--- a/tests/phpunit/UpdateTable/UpdateTableTest.php
+++ b/tests/phpunit/UpdateTable/UpdateTableTest.php
@@ -5,7 +5,8 @@
use DateTime;
use Wikibase\DataModel\Entity\ItemId;
-use WikidataQuality\ExternalValidation\DumpMetaInformation;
+use WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore;
use WikidataQuality\ExternalValidation\Maintenance\UpdateTable;
@@ -14,7 +15,8 @@
* @covers WikidataQuality\ExternalValidation\UpdateTable\ImportContext
* @covers WikidataQuality\ExternalValidation\Maintenance\UpdateTable
*
- * @uses WikidataQuality\ExternalValidation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation
+ * @uses
WikidataQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationStore
*
* @group Database
* @group medium
@@ -57,7 +59,8 @@
);
// Insert external test data
- $dumpMetaInformation->save( $this->db );
+ $dumpMetaInformationStore = new DumpMetaInformationStore();
+ $dumpMetaInformationStore->saveDumpMetaInformation(
$dumpMetaInformation );
// Insert identifier properties
$this->db->insert(
--
To view, visit https://gerrit.wikimedia.org/r/207049
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8de0e2ed3a8460bccff374480caa3a5ae936594d
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/WikidataQualityExternalValidation
Gerrit-Branch: v1
Gerrit-Owner: Dominic.sauer <[email protected]>
Gerrit-Reviewer: Dominic.sauer <[email protected]>
Gerrit-Reviewer: Tamslo <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits