jenkins-bot has submitted this change and it was merged.
Change subject: Resolved further hints from code review from Daniel (see change
219243).
......................................................................
Resolved further hints from code review from Daniel (see change 219243).
Change-Id: I7b5c2692bf95afecf84f30b8db04c28ae84912cd
---
M composer.json
D includes/CrossCheck/ComparativeValueParser/BasicComparativeValueParser.php
D
includes/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParser.php
D includes/CrossCheck/ComparativeValueParser/ComparativeStringValueParser.php
D includes/CrossCheck/ComparativeValueParser/ComparativeValueParser.php
D includes/CrossCheck/ComparativeValueParser/ComparativeValueParserFactory.php
D
includes/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParser.php
M includes/CrossCheck/Comparer/DataValueComparer.php
M includes/CrossCheck/Comparer/DataValueComparerFactory.php
M includes/CrossCheck/Comparer/QuantityValueComparer.php
M includes/CrossCheck/Comparer/StringComparer.php
M includes/CrossCheck/CrossChecker.php
A includes/CrossCheck/ValueParser/ComparativeValueParser.php
A includes/CrossCheck/ValueParser/ComparativeValueParserFactory.php
A includes/CrossCheck/ValueParser/MultilingualTextValueParser.php
A includes/CrossCheck/ValueParser/StringValueParser.php
M includes/DumpMetaInformation/SqlDumpMetaInformationRepo.php
M includes/ExternalValidationServices.php
M includes/UpdateTable/ExternalDataImporter.php
M specials/SpecialCrossCheck.php
D
tests/phpunit/CrossCheck/ComparativeValueParser/BasicComparativeValueParserTest.php
D
tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParserTest.php
D
tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeStringValueParserTest.php
M
tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserFactoryTest.php
D
tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserTestBase.php
D
tests/phpunit/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParserTest.php
A
tests/phpunit/CrossCheck/ComparativeValueParser/MultilingualTextValueParserTest.php
A tests/phpunit/CrossCheck/ComparativeValueParser/StringValueParserTest.php
A tests/phpunit/CrossCheck/ComparativeValueParser/ValueParserTestBase.php
M tests/phpunit/CrossCheck/Comparer/DataValueComparerFactoryTest.php
M tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php
M tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php
M tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php
M tests/phpunit/CrossCheck/Comparer/StringComparerTest.php
M tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php
M tests/phpunit/CrossCheck/CrossCheckerTest.php
M tests/phpunit/ExternalValidationServicesTest.php
M tests/phpunit/Specials/SpecialCrossCheckTest.php
38 files changed, 805 insertions(+), 1,219 deletions(-)
Approvals:
Dominic.sauer: Looks good to me, approved
jenkins-bot: Verified
diff --git a/composer.json b/composer.json
index b4699a6..f03a304 100755
--- a/composer.json
+++ b/composer.json
@@ -18,7 +18,7 @@
"wikibase/data-model": "~3.0",
"serialization/serialization": "3.*,>=3.2.1",
"wikibase/data-model-serialization": "~1.3",
- "wikimedia/assert": "~0.2.2"
+ "wikimedia/assert": "~0.2.2"
},
"require-dev": {
"phpunit/phpunit": "~3.7,>=3.7.37|~4.5",
diff --git
a/includes/CrossCheck/ComparativeValueParser/BasicComparativeValueParser.php
b/includes/CrossCheck/ComparativeValueParser/BasicComparativeValueParser.php
deleted file mode 100644
index 210e5da..0000000
--- a/includes/CrossCheck/ComparativeValueParser/BasicComparativeValueParser.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser;
-
-use InvalidArgumentException;
-use DataValues\DataValue;
-use ValueParsers\ParserOptions;
-use ValueParsers\ValueParser;
-use Wikibase\Repo\ValueParserFactory;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
-
-/**
- * Class BasicComparativeValueParser
- * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class BasicComparativeValueParser implements ComparativeValueParser {
-
- /**
- * @var ValueParserFactory
- */
- private $valueParserFactory;
-
- /**
- * @var array
- */
- private $conversionTypeMapping;
-
- /**
- * @param ValueParserFactory $valueParserFactory
- * @param array $conversionTypeMapping
- */
- public function __construct( ValueParserFactory $valueParserFactory,
array $conversionTypeMapping ) {
- $this->valueParserFactory = $valueParserFactory;
- $this->conversionTypeMapping = $conversionTypeMapping;
- }
-
- /**
- * @see ComparativeValueParser::isParserFor
- *
- * @param DataValue $dataValue
- * @return bool
- */
- public function isParserFor( DataValue $dataValue ) {
- return in_array( $dataValue->getType(), array_keys(
$this->conversionTypeMapping ) );
- }
-
- /**
- * @see ComparativeValueParser::parseForComparison
- *
- * @param DataValue $dataValue
- * @param string $comparativeValue
- * @param DumpMetaInformation $dumpMetaInformation
- * @return DataValue
- */
- public function parseForComparison( DataValue $dataValue,
$comparativeValue, DumpMetaInformation $dumpMetaInformation ) {
- if( !$this->isParserFor( $dataValue ) ) {
- throw new InvalidArgumentException( 'Parser can not
parse values as comparative value for given DataValue.' );
- }
-
- $options = new ParserOptions();
- $options->setOption( 'valuelang',
$dumpMetaInformation->getLanguageCode() );
- $options->setOption( ValueParser::OPT_LANG,
$dumpMetaInformation->getLanguageCode() );
- $targetType =
$this->conversionTypeMapping[$dataValue->getType()];
- $parser = $this->valueParserFactory->newParser( $targetType,
$options );
-
- return $parser->parse( $comparativeValue );
- }
-}
\ No newline at end of file
diff --git
a/includes/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParser.php
b/includes/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParser.php
deleted file mode 100644
index df84f39..0000000
---
a/includes/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParser.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser;
-
-use InvalidArgumentException;
-use DataValues\DataValue;
-use DataValues\MultilingualTextValue;
-use ValueParsers\ParserOptions;
-use Wikibase\Repo\ValueParserFactory;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
-
-/**
- * Class MultilingualStringValueParser
- * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class ComparativeMultilingualTextValueParser implements ComparativeValueParser
{
-
- /**
- * @var ValueParserFactory
- */
- private $valueParserFactory;
-
- /**
- * @param ValueParserFactory $valueParserFactory
- */
- public function __construct( ValueParserFactory $valueParserFactory ) {
- $this->valueParserFactory = $valueParserFactory;
- }
-
- /**
- * @see ComparativeValueParser::isParserFor
- *
- * @param DataValue $dataValue
- * @return bool
- */
- public function isParserFor( DataValue $dataValue ) {
- return $dataValue->getType() === 'multilingualtext';
- }
-
- /**
- * @see ComparativeValueParser::parseForComparison
- *
- * @param DataValue $dataValue
- * @param string $comparativeValue
- * @param DumpMetaInformation $dumpMetaInformation
- * @return DataValue
- */
- public function parseForComparison( DataValue $dataValue,
$comparativeValue, DumpMetaInformation $dumpMetaInformation ) {
- if( !$this->isParserFor( $dataValue ) ) {
- throw new InvalidArgumentException( 'Parser can not
parse values as comparative value for given DataValue.' );
- }
-
- $options = new ParserOptions();
- $options->setOption( 'valuelang',
$dumpMetaInformation->getLanguageCode() );
- $parser = $this->valueParserFactory->newParser(
'monolingualtext', $options );
-
- return new MultilingualTextValue(
- array( $parser->parse( $comparativeValue ) )
- );
- }
-}
\ No newline at end of file
diff --git
a/includes/CrossCheck/ComparativeValueParser/ComparativeStringValueParser.php
b/includes/CrossCheck/ComparativeValueParser/ComparativeStringValueParser.php
deleted file mode 100644
index 74de2a2..0000000
---
a/includes/CrossCheck/ComparativeValueParser/ComparativeStringValueParser.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser;
-
-use DataValues\StringValue;
-use InvalidArgumentException;
-use DataValues\DataValue;
-use Wikibase\StringNormalizer;
-use Wikibase\Test\StringNormalizerTest;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
-
-class ComparativeStringValueParser implements ComparativeValueParser {
-
- /**
- * @var StringNormalizer
- */
- private $stringNormalizer;
-
- /**
- * @param StringNormalizer $stringNormalizer
- */
- public function __construct( StringNormalizer $stringNormalizer ) {
- $this->stringNormalizer = $stringNormalizer;
- }
-
- /**
- * @see ComparativeValueParser::isParserFor
- *
- * @param DataValue $dataValue
- * @return bool
- */
- public function isParserFor( DataValue $dataValue ) {
- return $dataValue->getType() === 'string';
- }
-
- /**
- * @see ComparativeValueParser::parseForComparison
- *
- * @param DataValue $dataValue
- * @param string $comparativeValue
- * @param DumpMetaInformation $dumpMetaInformation
- * @return DataValue
- */
- public function parseForComparison( DataValue $dataValue,
$comparativeValue, DumpMetaInformation $dumpMetaInformation ) {
- if( !$this->isParserFor( $dataValue ) ) {
- throw new InvalidArgumentException( 'Parser can not
parse values as comparative value for given DataValue.' );
- }
-
- return new StringValue( $this->stringNormalizer->trimToNFC(
$comparativeValue ) );
- }
-}
\ No newline at end of file
diff --git
a/includes/CrossCheck/ComparativeValueParser/ComparativeValueParser.php
b/includes/CrossCheck/ComparativeValueParser/ComparativeValueParser.php
deleted file mode 100644
index 790cbe0..0000000
--- a/includes/CrossCheck/ComparativeValueParser/ComparativeValueParser.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser;
-
-use DataValues\DataValue;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
-
-/**
- * Interface ExternalValueParser
- * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-interface ComparativeValueParser {
-
- /**
- * Determines, whether this parser can be used to parse strings for
comparison with given DataValue.
- *
- * @param DataValue $dataValue
- * @return mixed
- */
- public function isParserFor( DataValue $dataValue ) ;
-
- /**
- * Parses string to DataValue for comparison with the given DataValue.
- *
- * @param DataValue $dataValue
- * @param string $comparativeValue
- * @param DumpMetaInformation $dumpMetaInformation
- * @return DataValue
- */
- public function parseForComparison( DataValue $dataValue,
$comparativeValue, DumpMetaInformation $dumpMetaInformation );
-}
\ No newline at end of file
diff --git
a/includes/CrossCheck/ComparativeValueParser/ComparativeValueParserFactory.php
b/includes/CrossCheck/ComparativeValueParser/ComparativeValueParserFactory.php
deleted file mode 100644
index 4effd42..0000000
---
a/includes/CrossCheck/ComparativeValueParser/ComparativeValueParserFactory.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser;
-
-use Wikibase\Repo\ValueParserFactory;
-use Wikibase\StringNormalizer;
-
-/**
- * Class ComparativeValueParserFactory
- * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class ComparativeValueParserFactory {
-
- /**
- * @var ValueParserFactory
- */
- private $valueParserFactory;
-
- /**
- * @var StringNormalizer
- */
- private $stringNormalizer;
-
- /**
- * @param ValueParserFactory $valueParserFactory
- */
- public function __construct( ValueParserFactory $valueParserFactory,
StringNormalizer $stringNormalizer ) {
- $this->valueParserFactory = $valueParserFactory;
- $this->stringNormalizer = $stringNormalizer;
- }
-
- /**
- * @return ComparativeValueParser
- */
- public function newBasicComparativeValueParser() {
- return new BasicComparativeValueParser(
- $this->valueParserFactory,
- array(
- 'time' => 'time',
- 'quantity' => 'quantity',
- 'globecoordinate' => 'globecoordinate',
- 'monolingualtext' => 'monolingualtext',
- 'wikibase-entityid' => 'monolingualtext'
- )
- );
- }
-
- /**
- * @return ComparativeValueParser
- */
- public function newComparativeStringValueParser() {
- return new ComparativeStringValueParser(
$this->stringNormalizer );
- }
-
- /**
- * @return ComparativeValueParser
- */
- public function newComparativeMultilingualTextValueParser() {
- return new ComparativeMultilingualTextValueParser(
$this->valueParserFactory );
- }
-
- /**
- * @return ComparativeValueParser
- */
- public function newDispatchingComparativeValueParser() {
- return new DispatchingComparativeValueParser(
- array(
- $this->newBasicComparativeValueParser(),
- $this->newComparativeStringValueParser(),
-
$this->newComparativeMultilingualTextValueParser()
- )
- );
- }
-}
\ No newline at end of file
diff --git
a/includes/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParser.php
b/includes/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParser.php
deleted file mode 100644
index 24ab882..0000000
---
a/includes/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParser.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser;
-
-use InvalidArgumentException;
-use DataValues\DataValue;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
-
-/**
- * Class DispatchingComparativeValueParser
- * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class DispatchingComparativeValueParser implements ComparativeValueParser {
-
- /**
- * @var ComparativeValueParser[]
- */
- private $comparativeValueParsers;
-
- /**
- * @param ComparativeValueParser[] $comparativeValueParsers
- */
- public function __construct( $comparativeValueParsers ) {
- $this->comparativeValueParsers = $comparativeValueParsers;
- }
-
- /**
- * @see ComparativeValueParser::isParserFor
- *
- * @param DataValue $dataValue
- * @return bool
- */
- public function isParserFor( DataValue $dataValue ) {
- foreach ( $this->comparativeValueParsers as
$comparativeValueParser ) {
- if( $comparativeValueParser->isParserFor( $dataValue )
) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * @see ComparativeValueParser::parseForComparison
- *
- * @param DataValue $dataValue
- * @param string $comparativeValue
- * @param DumpMetaInformation $dumpMetaInformation
- * @return DataValue
- */
- public function parseForComparison( DataValue $dataValue,
$comparativeValue, DumpMetaInformation $dumpMetaInformation ) {
- return $this->getParserFor( $dataValue )->parseForComparison(
$dataValue, $comparativeValue, $dumpMetaInformation );
- }
-
- /**
- * @param DataValue $dataValue
- * @return ComparativeValueParser
- */
- private function getParserFor( DataValue $dataValue ) {
- foreach ( $this->comparativeValueParsers as
$comparativeValueParser ) {
- if( $comparativeValueParser->isParserFor( $dataValue )
) {
- return $comparativeValueParser;
- }
- }
-
- throw new InvalidArgumentException( 'There is no
ComparativeValueParser registered for given DataValue.' );
- }
-}
\ No newline at end of file
diff --git a/includes/CrossCheck/Comparer/DataValueComparer.php
b/includes/CrossCheck/Comparer/DataValueComparer.php
index 11e4041..0dd7404 100755
--- a/includes/CrossCheck/Comparer/DataValueComparer.php
+++ b/includes/CrossCheck/Comparer/DataValueComparer.php
@@ -3,8 +3,6 @@
namespace WikibaseQuality\ExternalValidation\CrossCheck\Comparer;
use DataValues\DataValue;
-use WikibaseQuality\ExternalValidation\CrossCheck\Result\ComparisonResult;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
/**
@@ -30,7 +28,7 @@
* @param DataValue $value
* @param DataValue $comparativeValue
*
- * @return string
+ * @return string (one of the status constants of ComparisonResult)
*/
public function compare( DataValue $value, DataValue $comparativeValue
);
}
\ No newline at end of file
diff --git a/includes/CrossCheck/Comparer/DataValueComparerFactory.php
b/includes/CrossCheck/Comparer/DataValueComparerFactory.php
index 3a82f0e..53a287d 100755
--- a/includes/CrossCheck/Comparer/DataValueComparerFactory.php
+++ b/includes/CrossCheck/Comparer/DataValueComparerFactory.php
@@ -3,6 +3,7 @@
namespace WikibaseQuality\ExternalValidation\CrossCheck\Comparer;
use Wikibase\Lib\Store\EntityLookup;
+use Wikibase\StringNormalizer;
use Wikibase\TermIndex;
@@ -21,10 +22,17 @@
private $termIndex;
/**
- * @param TermIndex $termIndex
+ * @var StringNormalizer
*/
- public function __construct( TermIndex $termIndex ) {
+ private $stringNormalizer;
+
+ /**
+ * @param TermIndex $termIndex
+ * @param StringNormalizer $stringNormalizer
+ */
+ public function __construct( TermIndex $termIndex, StringNormalizer
$stringNormalizer ) {
$this->termIndex = $termIndex;
+ $this->stringNormalizer = $stringNormalizer;
}
/**
@@ -37,6 +45,15 @@
$this->termIndex,
$this->newStringComparer()
);
+ }
+
+ /**
+ * Returns a StringComparer that can compare various number of strings
with each other.
+ *
+ * @return StringComparer
+ */
+ private function newStringComparer() {
+ return new StringComparer( $this->stringNormalizer );
}
/**
@@ -97,15 +114,6 @@
*/
public function newTimeValueComparer() {
return new TimeValueComparer();
- }
-
- /**
- * Returns a StringComparer that can compare various number of strings
with each other.
- *
- * @return StringComparer
- */
- private function newStringComparer() {
- return new StringComparer();
}
/**
diff --git a/includes/CrossCheck/Comparer/QuantityValueComparer.php
b/includes/CrossCheck/Comparer/QuantityValueComparer.php
index 792157d..caee4bf 100755
--- a/includes/CrossCheck/Comparer/QuantityValueComparer.php
+++ b/includes/CrossCheck/Comparer/QuantityValueComparer.php
@@ -28,8 +28,8 @@
throw new InvalidArgumentException( 'Given values can
not be compared using this comparer.' );
}
- if ( $comparativeValue->getLowerBound()->compare(
$value->getUpperBound() ) !== 1 &&
- $comparativeValue->getUpperBound()->compare(
$value->getLowerBound() ) !== -1
+ if ( $comparativeValue->getLowerBound()->compare(
$value->getUpperBound() ) <= 0 &&
+ $comparativeValue->getUpperBound()->compare(
$value->getLowerBound() ) >= 0
) {
return ComparisonResult::STATUS_MATCH;
}
diff --git a/includes/CrossCheck/Comparer/StringComparer.php
b/includes/CrossCheck/Comparer/StringComparer.php
index 0f4305a..d51205d 100755
--- a/includes/CrossCheck/Comparer/StringComparer.php
+++ b/includes/CrossCheck/Comparer/StringComparer.php
@@ -3,6 +3,7 @@
namespace WikibaseQuality\ExternalValidation\CrossCheck\Comparer;
use InvalidArgumentException;
+use Wikibase\StringNormalizer;
use WikibaseQuality\ExternalValidation\CrossCheck\Result\ComparisonResult;
use Wikimedia\Assert\Assert;
@@ -20,6 +21,18 @@
* Threshold for matching compliance in prefix/suffix similarity checks
*/
const SIMILARITY_THRESHOLD = 0.75;
+
+ /**
+ * @var StringNormalizer
+ */
+ private $stringNormalizer;
+
+ /**
+ * @param StringNormalizer $stringNormalizer
+ */
+ public function __construct( StringNormalizer $stringNormalizer ) {
+ $this->stringNormalizer = $stringNormalizer;
+ }
/**
* Compares two strings with each other.
@@ -96,7 +109,7 @@
* @return string
*/
private function cleanDataString( $value ) {
- $value = trim( $value );
+ $value = $this->stringNormalizer->trimToNFC( $value );
return mb_strtolower( $value );
}
diff --git a/includes/CrossCheck/CrossChecker.php
b/includes/CrossCheck/CrossChecker.php
index e980db0..38f0ebd 100755
--- a/includes/CrossCheck/CrossChecker.php
+++ b/includes/CrossCheck/CrossChecker.php
@@ -13,14 +13,14 @@
use Wikibase\DataModel\Statement\Statement;
use Wikibase\DataModel\Statement\StatementList;
use Wikibase\Lib\Store\EntityLookup;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParser;
+use
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParser;
+use
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParserFactory;
use WikibaseQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer;
use WikibaseQuality\ExternalValidation\CrossCheck\Result\ComparisonResult;
use WikibaseQuality\ExternalValidation\CrossCheck\Result\CrossCheckResult;
use WikibaseQuality\ExternalValidation\CrossCheck\Result\CrossCheckResultList;
use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
use
WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationLookup;
-use
WikibaseQuality\ExternalValidation\DumpMetaInformation\SqlDumpMetaInformationRepo;
use WikibaseQuality\ExternalValidation\ExternalDataRepo;
@@ -41,9 +41,9 @@
private $entityLookup;
/**
- * @var ComparativeValueParser
+ * @var ComparativeValueParserFactory
*/
- private $comparativeValueParser;
+ private $valueParserFactory;
/**
* @var DataValueComparer
@@ -67,21 +67,22 @@
/**
* @param EntityLookup $entityLookup
- * @param ComparativeValueParser $comparativeValueParser
+ * @param ComparativeValueParserFactory $comparativeValueParserFactory
* @param DataValueComparer $dataValueComparer
* @param ReferenceChecker $referenceHandler
* @param DumpMetaInformationLookup $dumpMetaInformationLookup
* @param ExternalDataRepo $externalDataRepo
*/
- public function __construct( EntityLookup $entityLookup,
- ComparativeValueParser $comparativeValueParser,
+ public function __construct(
+ EntityLookup $entityLookup,
+ ComparativeValueParserFactory $comparativeValueParserFactory,
DataValueComparer $dataValueComparer,
- ReferenceChecker $referenceHandler,
+ ReferenceChecker $referenceHandler,
DumpMetaInformationLookup $dumpMetaInformationLookup,
ExternalDataRepo $externalDataRepo
) {
$this->entityLookup = $entityLookup;
- $this->comparativeValueParser = $comparativeValueParser;
+ $this->valueParserFactory = $comparativeValueParserFactory;
$this->dataValueComparer = $dataValueComparer;
$this->referenceHandler = $referenceHandler;
$this->dumpMetaInformationLookup = $dumpMetaInformationLookup;
@@ -160,10 +161,12 @@
*
* @return CrossCheckResultList
*/
- private function crossCheckStatementsWithIdentifier( Entity $entity,
-
StatementList $statements,
-
PropertyId $identifierPropertyId,
-
array $dumpMetaInformationList ) {
+ private function crossCheckStatementsWithIdentifier(
+ Entity $entity,
+ StatementList $statements,
+ PropertyId $identifierPropertyId,
+ array $dumpMetaInformationList
+ ) {
$resultList = new CrossCheckResultList();
$externalIds = $this->getExternalIds( $entity,
$identifierPropertyId );
@@ -181,6 +184,7 @@
foreach ( $externalData as $dumpId => $externalDataPerDump ) {
$dumpMetaInformation = $dumpMetaInformationList[
$dumpId ];
+ $comparativeValueParser =
$this->valueParserFactory->newComparativeValueParser( $dumpMetaInformation );
foreach ( $externalDataPerDump as $externalId =>
$externalDataPerId ) {
$externalId = (string)$externalId;
@@ -192,7 +196,8 @@
$identifierPropertyId,
$externalId,
$externalValues,
-
$statements->getByPropertyId( $propertyId )
+
$statements->getByPropertyId( $propertyId ),
+ $comparativeValueParser
)
);
}
@@ -208,19 +213,29 @@
* @param string $externalId
* @param array $externalValues
* @param StatementList $statements
+ * @param ComparativeValueParser $comparativeValueParser
+ *
* @return CrossCheckResultList
*/
- private function crossCheckExternalValues( DumpMetaInformation
$dumpMetaInformation,
-
PropertyId $identifierPropertyId,
-
$externalId,
-
array $externalValues,
-
StatementList $statements ) {
+ private function crossCheckExternalValues(
+ DumpMetaInformation $dumpMetaInformation,
+ PropertyId $identifierPropertyId,
+ $externalId,
+ array $externalValues,
+ StatementList $statements,
+ ComparativeValueParser $comparativeValueParser
+ ) {
$resultList = new CrossCheckResultList();
foreach ( $statements as $statement ) {
- $comparisonResult = $this->compareStatement(
$statement, $externalValues, $dumpMetaInformation );
+ $comparisonResult = $this->compareStatement(
$statement, $externalValues, $comparativeValueParser );
if ( $comparisonResult ) {
- $referencesResult =
$this->referenceHandler->checkForReferences( $statement, $identifierPropertyId,
$externalId, $dumpMetaInformation );
+ $referencesResult =
$this->referenceHandler->checkForReferences(
+ $statement,
+ $identifierPropertyId,
+ $externalId,
+ $dumpMetaInformation
+ );
$resultList->add(
new CrossCheckResult(
@@ -243,19 +258,20 @@
*
* @param Statement $statement
* @param array $externalValues
- * @param DumpMetaInformation $dumpMetaInformation
+ * @param ComparativeValueParser $comparativeValueParser
*
* @return ComparisonResult|bool
*/
- private function compareStatement( Statement $statement,
-
array $externalValues,
-
DumpMetaInformation $dumpMetaInformation ) {
+ private function compareStatement(
+ Statement $statement,array $externalValues,
+ ComparativeValueParser $comparativeValueParser
+ ) {
$mainSnak = $statement->getMainSnak();
if ( $mainSnak instanceof PropertyValueSnak ) {
$dataValue = $mainSnak->getDataValue();
$results = array();
- $comparativeValues = $this->parseExternalValues(
$dataValue, $externalValues, $dumpMetaInformation );
+ $comparativeValues = $this->parseExternalValues(
$dataValue, $externalValues, $comparativeValueParser );
foreach ( $comparativeValues as $comparativeValue ) {
$result = $this->dataValueComparer->compare(
$dataValue, $comparativeValue );
if( $result ) {
@@ -282,20 +298,19 @@
/**
* @param DataValue $dataValue
* @param array $externalValues
- * @param DumpMetaInformation $dumpMetaInformation
+ * @param ComparativeValueParser $comparativeValueParser
+ *
* @return DataValue[]
*/
- private function parseExternalValues( DataValue $dataValue,
-
array $externalValues,
-
DumpMetaInformation $dumpMetaInformation ) {
+ private function parseExternalValues(
+ DataValue $dataValue,
+ array $externalValues,
+ ComparativeValueParser $comparativeValueParser
+ ) {
$parsedValues = array();
foreach ( $externalValues as $externalValue ) {
try {
- $parsedValue =
$this->comparativeValueParser->parseForComparison(
- $dataValue,
- $externalValue,
- $dumpMetaInformation
- );
+ $parsedValue = $comparativeValueParser->parse(
$externalValue, $dataValue->getType() );
if( $parsedValue ) {
$parsedValues[] = $parsedValue;
}
diff --git a/includes/CrossCheck/ValueParser/ComparativeValueParser.php
b/includes/CrossCheck/ValueParser/ComparativeValueParser.php
new file mode 100644
index 0000000..a9a62bc
--- /dev/null
+++ b/includes/CrossCheck/ValueParser/ComparativeValueParser.php
@@ -0,0 +1,88 @@
+<?php
+
+namespace WikibaseQuality\ExternalValidation\CrossCheck\ValueParser;
+
+use DataValues\DataValue;
+use ValueParsers\ValueParser;
+use ValueParsers\ParserOptions;
+use Wikibase\Repo\ValueParserFactory;
+use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use Wikimedia\Assert\Assert;
+
+
+/**
+ * Class NewComparativeValueParser
+ *
+ * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class ComparativeValueParser {
+
+ /**
+ * @var DumpMetaInformation
+ */
+ private $dumpMetaInformation;
+
+ /**
+ * @var ValueParserFactory
+ */
+ private $comparativeValueParserFactory;
+
+ /**
+ * @var ValueParser[]
+ */
+ private $valueParsers = array();
+
+ /**
+ * @param DumpMetaInformation $dumpMetaInformation
+ * @param ValueParserFactory $comparativeValueParserFactory
+ */
+ public function __construct(
+ DumpMetaInformation $dumpMetaInformation,
+ ValueParserFactory $comparativeValueParserFactory
+ ) {
+ $this->dumpMetaInformation = $dumpMetaInformation;
+ $this->comparativeValueParserFactory =
$comparativeValueParserFactory;
+ }
+
+ /**
+ * Parses given string into DataValue for comparison with DataValues of
$propertyType.
+ *
+ * @param string $value
+ * @param string $propertyType
+ *
+ * @return DataValue
+ */
+ public function parse( $value, $propertyType ) {
+ Assert::parameterType( 'string', $value, '$value' );
+ Assert::parameterType( 'string', $propertyType, '$propertyType'
);
+
+ return $this->getValueParser( $propertyType )->parse( $value );
+ }
+
+ /**
+ * @param string $type
+ *
+ * @return ValueParser
+ */
+ private function getValueParser( $type ) {
+ if( !array_key_exists( $type, $this->valueParsers ) ) {
+ $parserOptions = $this->getParserOptions();
+ $this->valueParsers[$type] =
$this->comparativeValueParserFactory->newParser( $type, $parserOptions );
+ }
+
+ return $this->valueParsers[$type];
+ }
+
+ /**
+ * @return ParserOptions
+ */
+ private function getParserOptions() {
+ $options = new ParserOptions();
+ $options->setOption( 'valuelang',
$this->dumpMetaInformation->getLanguageCode() );
+ $options->setOption( ValueParser::OPT_LANG,
$this->dumpMetaInformation->getLanguageCode() );
+
+ return $options;
+ }
+}
\ No newline at end of file
diff --git a/includes/CrossCheck/ValueParser/ComparativeValueParserFactory.php
b/includes/CrossCheck/ValueParser/ComparativeValueParserFactory.php
new file mode 100644
index 0000000..f1b84d2
--- /dev/null
+++ b/includes/CrossCheck/ValueParser/ComparativeValueParserFactory.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace WikibaseQuality\ExternalValidation\CrossCheck\ValueParser;
+
+use ValueParsers\ParserOptions;
+use Wikibase\Repo\ValueParserFactory;
+use Wikibase\StringNormalizer;
+use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+
+
+/**
+ * Class ComparativeValueParserFactory
+ * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class ComparativeValueParserFactory {
+
+ /**
+ * @var ValueParserFactory
+ */
+ private $valueParserFactory;
+
+ /**
+ * @var StringNormalizer
+ */
+ private $stringNormalizer;
+
+ /**
+ * @param ValueParserFactory $valueParserFactory
+ * @param StringNormalizer $stringNormalizer
+ */
+ public function __construct( ValueParserFactory $valueParserFactory,
StringNormalizer $stringNormalizer ) {
+ $this->valueParserFactory = $valueParserFactory;
+ $this->stringNormalizer = $stringNormalizer;
+ }
+
+ /**
+ * @param ParserOptions|null $options
+ *
+ * @return MultilingualTextValueParser
+ */
+ public function newMultilingualTextValueParser( ParserOptions $options
= null ) {
+ $options = $options ?: new ParserOptions();
+ $monolingualTextValueParser =
$this->valueParserFactory->newParser( 'monolingualtext', $options );
+
+ return new MultilingualTextValueParser(
$monolingualTextValueParser );
+ }
+
+ /**
+ * @return StringValueParser
+ */
+ public function newStringValueParser() {
+ return new StringValueParser( $this->stringNormalizer );
+ }
+
+ /**
+ * @param DumpMetaInformation $dumpMetaInformation
+ *
+ * @return ComparativeValueParser
+ */
+ public function newComparativeValueParser( DumpMetaInformation
$dumpMetaInformation ) {
+ return new ComparativeValueParser(
+ $dumpMetaInformation,
+ $this->buildComparativeValueParserFactory(
$this->valueParserFactory )
+ );
+ }
+
+ /**
+ * Creates new ValueParserFactory, that parses strings to DataValues
for comparison with DataValues of given type.
+ * Factory is build based on given factory, but extends it to support
parsing into StringValues and
+ * MultilingualTextValues. Parser for EntityIdValue is overwritten by
MonolingualTextValueParser to meet
+ * requirements of EntityIdValueComparer.
+ *
+ * @param ValueParserFactory $valueParserFactory
+ *
+ * @return ValueParserFactory
+ */
+ private function buildComparativeValueParserFactory( ValueParserFactory
$valueParserFactory ) {
+ $valueParsers = array();
+ foreach ( $valueParserFactory->getParserIds() as $parserId ) {
+ $valueParsers[$parserId] =
$valueParserFactory->getParserBuilder( $parserId );
+ }
+
+ $valueParsers['string'] = array( $this, 'newStringValueParser'
);
+ $valueParsers['multilingualtext'] = array( $this,
'newMultilingualTextValueParser' );
+ $monolingualTextParserBuilder =
$valueParserFactory->getParserBuilder( 'monolingualtext' );
+ if( $monolingualTextParserBuilder ) {
+ $valueParsers['wikibase-entityid'] =
$monolingualTextParserBuilder;
+ }
+
+ return new ValueParserFactory( $valueParsers );
+ }
+}
\ No newline at end of file
diff --git a/includes/CrossCheck/ValueParser/MultilingualTextValueParser.php
b/includes/CrossCheck/ValueParser/MultilingualTextValueParser.php
new file mode 100644
index 0000000..8f6f2ba
--- /dev/null
+++ b/includes/CrossCheck/ValueParser/MultilingualTextValueParser.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace WikibaseQuality\ExternalValidation\CrossCheck\ValueParser;
+
+use InvalidArgumentException;
+use DataValues\DataValue;
+use DataValues\MultilingualTextValue;
+use ValueParsers\ParserOptions;
+use ValueParsers\ValueParser;
+use Wikibase\Repo\ValueParserFactory;
+use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use Wikimedia\Assert\Assert;
+
+
+/**
+ * Class MultilingualStringValueParser
+ * @package
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class MultilingualTextValueParser implements ValueParser {
+
+ /**
+ * @var ValueParser
+ */
+ private $monolingualTextValueParser;
+
+ /**
+ * @param ValueParser $monolingualTextValueParser
+ */
+ public function __construct( ValueParser $monolingualTextValueParser ) {
+ $this->monolingualTextValueParser = $monolingualTextValueParser;
+ }
+
+ /**
+ * @see ValueParser::parse
+ *
+ * @param string $value
+ *
+ * @return MultilingualTextValue
+ */
+ public function parse( $value ) {
+ Assert::parameterType( 'string', $value, '$value' );
+
+ return new MultilingualTextValue(
+ array( $this->monolingualTextValueParser->parse( $value
) )
+ );
+ }
+}
\ No newline at end of file
diff --git a/includes/CrossCheck/ValueParser/StringValueParser.php
b/includes/CrossCheck/ValueParser/StringValueParser.php
new file mode 100644
index 0000000..c838a15
--- /dev/null
+++ b/includes/CrossCheck/ValueParser/StringValueParser.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace WikibaseQuality\ExternalValidation\CrossCheck\ValueParser;
+
+use DataValues\StringValue;
+use InvalidArgumentException;
+use DataValues\DataValue;
+use ValueParsers\ValueParser;
+use Wikibase\StringNormalizer;
+use Wikibase\Test\StringNormalizerTest;
+use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+use Wikimedia\Assert\Assert;
+
+
+class StringValueParser implements ValueParser {
+
+ /**
+ * @var StringNormalizer
+ */
+ private $stringNormalizer;
+
+ /**
+ * @param StringNormalizer $stringNormalizer
+ */
+ public function __construct( StringNormalizer $stringNormalizer ) {
+ $this->stringNormalizer = $stringNormalizer;
+ }
+
+ /**
+ * @see ValueParser::parse
+ *
+ * @param string $value
+ *
+ * @return StringValue
+ */
+ public function parse( $value ) {
+ Assert::parameterType( 'string', $value, '$value' );
+
+ return new StringValue( $this->stringNormalizer->trimToNFC(
$value ) );
+ }
+}
\ No newline at end of file
diff --git a/includes/DumpMetaInformation/SqlDumpMetaInformationRepo.php
b/includes/DumpMetaInformation/SqlDumpMetaInformationRepo.php
index fa246c3..890ed0a 100755
--- a/includes/DumpMetaInformation/SqlDumpMetaInformationRepo.php
+++ b/includes/DumpMetaInformation/SqlDumpMetaInformationRepo.php
@@ -27,19 +27,6 @@
const IDENTIFIER_PROPERTIES_TABLE_NAME = 'wbqev_identifier_properties';
/**
- * @var EntityIdParser
- */
- private $entityIdParser;
-
- /**
- * @param EntityIdParser $entityIdParser
- */
- public function __construct( EntityIdParser $entityIdParser ) {
- $this->entityIdParser = $entityIdParser;
- }
-
-
- /**
* Gets DumpMetaInformation for specific dump id from database.
*
* @param $dumpId
@@ -201,11 +188,11 @@
$aggregatedRows = array();
foreach ( $result as $row ) {
if ( array_key_exists( $row->id, $aggregatedRows ) ) {
- $propertyId = $this->entityIdParser->parse(
$row->identifier_pid );
+ $propertyId = new PropertyId(
$row->identifier_pid );
$aggregatedRows[$row->id]->identifier_pid[] =
$propertyId;
} else {
if ( $row->identifier_pid !== null ) {
- $propertyId =
$this->entityIdParser->parse( $row->identifier_pid );
+ $propertyId = new PropertyId(
$row->identifier_pid );
$row->identifier_pid = array(
$propertyId );
}
$aggregatedRows[$row->id] = $row;
diff --git a/includes/ExternalValidationServices.php
b/includes/ExternalValidationServices.php
index 6ef238e..8e41cf5 100755
--- a/includes/ExternalValidationServices.php
+++ b/includes/ExternalValidationServices.php
@@ -6,23 +6,12 @@
use DataValues\Deserializers\DataValueDeserializer;
use DataValues\Serializers\DataValueSerializer;
use ValueFormatters\FormatterOptions;
-use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Statement\StatementGuidParser;
-use Wikibase\DataModel\Entity\EntityIdParser;
-use Wikibase\Lib\EntityIdHtmlLinkFormatter;
-use Wikibase\Lib\LanguageNameLookup;
-use Wikibase\Lib\OutputFormatValueFormatterFactory;
use Wikibase\Lib\SnakFormatter;
-use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\Lib\Store\EntityRevisionLookup;
-use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Lib\Store\LanguageLabelDescriptionLookup;
-use Wikibase\Lib\Store\TermLookup;
use Wikibase\Repo\ValueParserFactory;
use Wikibase\Repo\WikibaseRepo;
use Wikibase\StringNormalizer;
-use Wikibase\TermIndex;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParserFactory;
+use
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParserFactory;
use
WikibaseQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparerFactory;
use WikibaseQuality\ExternalValidation\CrossCheck\CrossChecker;
use WikibaseQuality\ExternalValidation\CrossCheck\CrossCheckInteractor;
@@ -45,180 +34,118 @@
*/
class ExternalValidationServices {
- /**
- * @var EntityLookup
- */
- private $entityLookup;
-
- /**
- * @var EntityRevisionLookup
- */
- private $entityRevisionLookup;
+ /**
+ * @var WikibaseRepo
+ */
+ private $wikibaseRepo;
/**
- * @var TermIndex
+ * @var CrossChecker
*/
- private $termIndex;
-
- /**
- * @var TermLookup
- */
- private $termLookup;
-
- /**
- * @var EntityTitleLookup
- */
- private $entityTitleLookup;
-
- /**
- * @var EntityIdParser
- */
- private $entityIdParser;
-
- /**
- * @var StatementGuidParser
- */
- private $statementGuidParser;
-
- /**
- * @var ValueFormatter
- */
- private $valueFormatterFactory;
+ private $crossChecker;
/**
- * @var ValueParserFactory
+ * @var CrossCheckInteractor
*/
- private $valueParserFactory;
+ private $crossCheckInteractor;
- /**
- * @var CrossChecker
- */
- private $crossChecker;
-
- /**
- * @var CrossCheckInteractor
- */
- private $crossCheckInteractor;
-
- /**
- * @var DataValueComparerFactory
- */
- private $dataValueComparerFactory;
+ /**
+ * @var DataValueComparerFactory
+ */
+ private $dataValueComparerFactory;
/**
* @var ComparativeValueParserFactory
*/
private $comparativeValueParserFactory;
- /**
- * @var DumpMetaInformationLookup
- */
- private $dumpMetaInformationLookup;
+ /**
+ * @var DumpMetaInformationLookup
+ */
+ private $dumpMetaInformationLookup;
- /**
- * @var DumpMetaInformationStore
- */
- private $dumpMetaInformationStore;
+ /**
+ * @var DumpMetaInformationStore
+ */
+ private $dumpMetaInformationStore;
- /**
- * @var ExternalDataRepo
- */
- private $externalDataRepo;
+ /**
+ * @var ExternalDataRepo
+ */
+ private $externalDataRepo;
- /**
- * @var SerializerFactory
- */
- private $serializerFactory;
+ /**
+ * @var SerializerFactory
+ */
+ private $serializerFactory;
- /**
- * @var CrossCheckResultToViolationTranslator
- */
- private $crossCheckResultToViolationTranslator;
+ /**
+ * @var CrossCheckResultToViolationTranslator
+ */
+ private $crossCheckResultToViolationTranslator;
- /**
- * @param EntityLookup $entityLookup
- * @param EntityRevisionLookup $entityRevisionLookup
- * @param TermLookup $termLookup
- * @param EntityTitleLookup $entityTitleLookup
- * @param EntityIdParser $entityIdParser
- * @param StatementGuidParser $statementGuidParser
- * @param OutputFormatValueFormatterFactory $valueFormatterFactory
- * @param ValueParserFactory $valueParserFactory
- */
- public function __construct( EntityLookup $entityLookup,
EntityRevisionLookup $entityRevisionLookup,
- TermIndex $termIndex, TermLookup $termLookup,
EntityTitleLookup $entityTitleLookup,
- EntityIdParser $entityIdParser,
StatementGuidParser $statementGuidParser,
- OutputFormatValueFormatterFactory
$valueFormatterFactory,
-
ValueParserFactory $valueParserFactory ) {
- $this->entityLookup = $entityLookup;
- $this->entityRevisionLookup = $entityRevisionLookup;
- $this->termLookup = $termLookup;
- $this->termIndex = $termIndex;
- $this->entityTitleLookup = $entityTitleLookup;
- $this->entityIdParser = $entityIdParser;
- $this->statementGuidParser = $statementGuidParser;
- $this->valueFormatterFactory = $valueFormatterFactory;
+ /**
+ * @param WikibaseRepo $wikibaseRepo
+ * @param ValueParserFactory $valueParserFactory
+ */
+ public function __construct( WikibaseRepo $wikibaseRepo,
ValueParserFactory $valueParserFactory ) {
+ $this->wikibaseRepo = $wikibaseRepo;
$this->valueParserFactory = $valueParserFactory;
- }
+ }
- /**
- * Returns the default instance.
- * IMPORTANT: Use only when it is not feasible to inject an instance
properly.
- *
- * @return ExternalValidationServices
- */
- public static function getDefaultInstance() {
- static $instance = null;
+ /**
+ * Returns the default instance.
+ * IMPORTANT: Use only when it is not feasible to inject an instance
properly.
+ *
+ * @return ExternalValidationServices
+ */
+ public static function getDefaultInstance()
+ {
+ static $instance = null;
- if ( $instance === null ) {
- $repo = WikibaseRepo::getDefaultInstance()->getDefaultInstance();
- $instance = new self(
- $repo->getEntityLookup(),
- $repo->getEntityRevisionLookup(),
- $repo->getStore()->getTermIndex(),
- $repo->getTermLookup(),
- $repo->getEntityTitleLookup(),
- $repo->getEntityIdParser(),
- $repo->getStatementGuidParser(),
- $repo->getValueFormatterFactory(),
- new ValueParserFactory(
$GLOBALS['wgValueParsers'] )
- );
- }
+ if ($instance === null) {
+ $instance = new self(
+ WikibaseRepo::getDefaultInstance(),
+ new
ValueParserFactory($GLOBALS['wgValueParsers'])
+ );
+ }
- return $instance;
- }
+ return $instance;
+ }
- /**
- * @return CrossChecker
- */
- public function getCrossChecker() {
- if ( $this->crossChecker === null ) {
- $this->crossChecker = new CrossChecker(
- $this->entityLookup,
-
$this->getComparativeValueParserFactory()->newDispatchingComparativeValueParser(),
+ /**
+ * @return CrossChecker
+ */
+ public function getCrossChecker()
+ {
+ if ($this->crossChecker === null) {
+ $this->crossChecker = new CrossChecker(
+ $this->wikibaseRepo->getEntityLookup(),
+ $this->getComparativeValueParserFactory(),
$this->getDataValueComparerFactory()->newDispatchingDataValueComparer(),
- new ReferenceChecker(),
- $this->getDumpMetaInformationLookup(),
- $this->getExternalDataRepo()
- );
- }
+ new ReferenceChecker(),
+ $this->getDumpMetaInformationLookup(),
+ $this->getExternalDataRepo()
+ );
+ }
- return $this->crossChecker;
- }
+ return $this->crossChecker;
+ }
- /**
- * @return CrossCheckInteractor
- */
- public function getCrossCheckInteractor() {
- if ( $this->crossCheckInteractor === null ) {
- $this->crossCheckInteractor = new CrossCheckInteractor(
- $this->entityLookup,
- $this->statementGuidParser,
- $this->getCrossChecker() );
- }
+ /**
+ * @return CrossCheckInteractor
+ */
+ public function getCrossCheckInteractor()
+ {
+ if ($this->crossCheckInteractor === null) {
+ $this->crossCheckInteractor = new CrossCheckInteractor(
+ $this->wikibaseRepo->getEntityLookup(),
+ $this->wikibaseRepo->getStatementGuidParser(),
+ $this->getCrossChecker());
+ }
- return $this->crossCheckInteractor;
- }
+ return $this->crossCheckInteractor;
+ }
/**
* @return ComparativeValueParserFactory
@@ -234,112 +161,120 @@
return $this->comparativeValueParserFactory;
}
- /**
- * @return DataValueComparerFactory
- */
- public function getDataValueComparerFactory() {
- if ( $this->dataValueComparerFactory === null ) {
- $this->dataValueComparerFactory = new DataValueComparerFactory(
$this->termIndex );
- }
+ /**
+ * @return CrossCheckResultToViolationTranslator
+ */
+ public function getCrossCheckResultToViolationTranslator() {
+ if ( $this->crossCheckResultToViolationTranslator === null ) {
+ $this->crossCheckResultToViolationTranslator = new
CrossCheckResultToViolationTranslator(
+ $this->wikibaseRepo->getEntityRevisionLookup()
+ );
+ }
- return $this->dataValueComparerFactory;
- }
+ return $this->crossCheckResultToViolationTranslator;
+ }
- /**
- * @return DumpMetaInformationLookup
- */
- public function getDumpMetaInformationLookup() {
- if( $this->dumpMetaInformationLookup === null ) {
- $this->dumpMetaInformationLookup = new SqlDumpMetaInformationRepo(
$this->entityIdParser );
- }
+ /**
+ * @return ViolationFormatter
+ */
+ public function getViolationFormatter() {
+ $languageCode =
RequestContext::getMain()->getLanguage()->getCode();
- return $this->dumpMetaInformationLookup;
- }
+ $dataValueDeserializer = new DataValueDeserializer(
+ array (
+ 'boolean' => 'DataValues\BooleanValue',
+ 'number' => 'DataValues\NumberValue',
+ 'string' => 'DataValues\StringValue',
+ 'unknown' => 'DataValues\UnknownValue',
+ 'globecoordinate' =>
'DataValues\GlobeCoordinateValue',
+ 'monolingualtext' =>
'DataValues\MonolingualTextValue',
+ 'multilingualtext' =>
'DataValues\MultilingualTextValue',
+ 'quantity' => 'DataValues\QuantityValue',
+ 'time' => 'DataValues\TimeValue',
+ 'wikibase-entityid' =>
'Wikibase\DataModel\Entity\EntityIdValue',
+ )
+ );
+ $entityIdLinkFormatter =
$this->wikibaseRepo->getEntityIdHtmlLinkFormatterFactory()->getEntityIdFormater(
+ new LanguageLabelDescriptionLookup(
$this->wikibaseRepo->getTermLookup(), $languageCode )
+ );
+ $formatterOptions = new FormatterOptions();
+ $formatterOptions->setOption( SnakFormatter::OPT_LANG,
$languageCode );
+ $valueFormatterFactory =
$this->wikibaseRepo->getValueFormatterFactory();
+ $dataValueFormatter =
$valueFormatterFactory->getValueFormatter( SnakFormatter::FORMAT_HTML,
$formatterOptions );
- /**
- * @return DumpMetaInformationStore
- */
- public function getDumpMetaInformationStore() {
- if( $this->dumpMetaInformationStore === null ) {
- $this->dumpMetaInformationStore = new SqlDumpMetaInformationRepo(
$this->entityIdParser );
- }
+ return new CrossCheckViolationFormatter(
+ $dataValueDeserializer,
+ $entityIdLinkFormatter,
+ $dataValueFormatter,
+ $this->getDumpMetaInformationLookup()
+ );
+ }
- return $this->dumpMetaInformationStore;
- }
+ /**
+ * @return DataValueComparerFactory
+ */
+ public function getDataValueComparerFactory()
+ {
+ if ($this->dataValueComparerFactory === null) {
+ $this->dataValueComparerFactory = new
DataValueComparerFactory(
+ $this->wikibaseRepo->getStore()->getTermIndex(),
+ $this->wikibaseRepo->getStringNormalizer()
+ );
+ }
- /**
- * @return ExternalDataRepo
- */
- public function getExternalDataRepo() {
- if( $this->externalDataRepo === null ) {
- $this->externalDataRepo = new ExternalDataRepo();
- }
+ return $this->dataValueComparerFactory;
+ }
- return $this->externalDataRepo;
- }
+ /**
+ * @return DumpMetaInformationLookup
+ */
+ public function getDumpMetaInformationLookup()
+ {
+ if ($this->dumpMetaInformationLookup === null) {
+ $this->dumpMetaInformationLookup = new
SqlDumpMetaInformationRepo();
+ }
- /**
- * @return SerializerFactory
- */
- public function getSerializerFactory() {
- if ( $this->serializerFactory === null ) {
- $dataValueSerializer = new DataValueSerializer();
- $dataModelSerializerFactory = new
\Wikibase\DataModel\SerializerFactory( $dataValueSerializer );
- $this->serializerFactory = new SerializerFactory(
- $dataValueSerializer,
- $dataModelSerializerFactory->newReferenceSerializer()
- );
- }
+ return $this->dumpMetaInformationLookup;
+ }
- return $this->serializerFactory;
- }
+ /**
+ * @return DumpMetaInformationStore
+ */
+ public function getDumpMetaInformationStore()
+ {
+ if ($this->dumpMetaInformationStore === null) {
+ $this->dumpMetaInformationStore = new
SqlDumpMetaInformationRepo();
+ }
- /**
- * @return CrossCheckResultToViolationTranslator
- */
- public function getCrossCheckResultToViolationTranslator() {
- if ( $this->crossCheckResultToViolationTranslator === null ) {
- $this->crossCheckResultToViolationTranslator = new
CrossCheckResultToViolationTranslator( $this->entityRevisionLookup );
- }
+ return $this->dumpMetaInformationStore;
+ }
- return $this->crossCheckResultToViolationTranslator;
- }
+ /**
+ * @return ExternalDataRepo
+ */
+ public function getExternalDataRepo()
+ {
+ if ($this->externalDataRepo === null) {
+ $this->externalDataRepo = new ExternalDataRepo();
+ }
- /**
- * @return ViolationFormatter
- */
- public function getViolationFormatter() {
- $languageCode = RequestContext::getMain()->getLanguage()->getCode();
+ return $this->externalDataRepo;
+ }
- $dataValueDeserializer = new DataValueDeserializer(
- array (
- 'boolean' => 'DataValues\BooleanValue',
- 'number' => 'DataValues\NumberValue',
- 'string' => 'DataValues\StringValue',
- 'unknown' => 'DataValues\UnknownValue',
- 'globecoordinate' => 'DataValues\GlobeCoordinateValue',
- 'monolingualtext' => 'DataValues\MonolingualTextValue',
- 'multilingualtext' => 'DataValues\MultilingualTextValue',
- 'quantity' => 'DataValues\QuantityValue',
- 'time' => 'DataValues\TimeValue',
- 'wikibase-entityid' =>
'Wikibase\DataModel\Entity\EntityIdValue',
- )
- );
- $labelLookup = new LanguageLabelDescriptionLookup( $this->termLookup,
$languageCode );
- $entityIdLinkFormatter = new EntityIdHtmlLinkFormatter(
- $labelLookup,
- $this->entityTitleLookup,
- new LanguageNameLookup()
- );
- $formatterOptions = new FormatterOptions();
- $formatterOptions->setOption( SnakFormatter::OPT_LANG, $languageCode );
- $dataValueFormatter = $this->valueFormatterFactory->getValueFormatter(
SnakFormatter::FORMAT_HTML, $formatterOptions );
+ /**
+ * @return SerializerFactory
+ */
+ public function getSerializerFactory()
+ {
+ if ($this->serializerFactory === null) {
+ $dataValueSerializer = new DataValueSerializer();
+ $dataModelSerializerFactory = new
\Wikibase\DataModel\SerializerFactory($dataValueSerializer);
+ $this->serializerFactory = new SerializerFactory(
+ $dataValueSerializer,
+
$dataModelSerializerFactory->newReferenceSerializer()
+ );
+ }
- return new CrossCheckViolationFormatter(
- $dataValueDeserializer,
- $entityIdLinkFormatter,
- $dataValueFormatter,
- $this->getDumpMetaInformationLookup()
- );
- }
+ return $this->serializerFactory;
+ }
}
\ No newline at end of file
diff --git a/includes/UpdateTable/ExternalDataImporter.php
b/includes/UpdateTable/ExternalDataImporter.php
index d015c7a..b4de222 100755
--- a/includes/UpdateTable/ExternalDataImporter.php
+++ b/includes/UpdateTable/ExternalDataImporter.php
@@ -40,7 +40,11 @@
* @param DumpMetaInformationStore $dumpMetaInformationStore
* @param ExternalDataRepo $externalDataRepo
*/
- public function __construct( CsvImportSettings $importSettings,
DumpMetaInformationStore $dumpMetaInformationStore, ExternalDataRepo
$externalDataRepo ) {
+ public function __construct(
+ CsvImportSettings $importSettings,
+ DumpMetaInformationStore $dumpMetaInformationStore,
+ ExternalDataRepo $externalDataRepo
+ ) {
$this->importSettings = $importSettings;
$this->dumpMetaInformationStore = $dumpMetaInformationStore;
$this->externalDataRepo = $externalDataRepo;
diff --git a/specials/SpecialCrossCheck.php b/specials/SpecialCrossCheck.php
index 34376bb..4e858ad 100755
--- a/specials/SpecialCrossCheck.php
+++ b/specials/SpecialCrossCheck.php
@@ -35,7 +35,7 @@
use WikibaseQuality\Html\HtmlTableCellBuilder;
use WikibaseQuality\Html\HtmlTableHeaderBuilder;
use WikibaseQuality\Violations\ViolationStore;
-use WikibaseQuality\WikibaseQualityFactory;
+use WikibaseQuality\WikibaseQualityServices;
class SpecialCrossCheck extends SpecialPage {
@@ -86,7 +86,7 @@
*/
public static function newFromGlobalState() {
$repo = WikibaseRepo::getDefaultInstance();
- $qualityServices = WikibaseQualityFactory::getDefaultInstance();
+ $qualityServices =
WikibaseQualityServices::getDefaultInstance();
$externalValidationServices =
ExternalValidationServices::getDefaultInstance();
return new self(
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/BasicComparativeValueParserTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/BasicComparativeValueParserTest.php
deleted file mode 100644
index de97958..0000000
---
a/tests/phpunit/CrossCheck/ComparativeValueParser/BasicComparativeValueParserTest.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
-
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\BasicComparativeValueParser;
-
-/**
- * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\BasicComparativeValueParser
- *
- * @group WikibaseQualityExternalValidation
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class BasicComparativeValueParserTest extends ComparativeValueParserTestBase {
-
- public function parseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'StringValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock( 'MonolingualTextValue'
),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock( 'QuantityValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function nonParseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'TimeValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock(
'MultilingualTextValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function parsingProvider() {
- return array(
- array(
- 'foo',
- $this->getDataValueMock( 'StringValue' ),
- null,
- $this->getDumpMetaInformationMock()
- ),
- array(
- 'bar',
- $this->getDataValueMock( 'MonolingualTextValue'
),
- null,
- $this->getDumpMetaInformationMock()
- ),
- array(
- 'foo',
- $this->getDataValueMock( 'QuantityValue' ),
- null,
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- protected function buildParser() {
- $parserFoo = $this->getValueParserMock( 'foo' );
- $parserBar = $this->getValueParserMock( 'bar' );
- $valueParserFactory = $this->getMockBuilder(
'Wikibase\Repo\ValueParserFactory' )
- ->setMethods( array( 'newParser' ) )
- ->disableOriginalConstructor()
- ->getMock();
- $valueParserFactory->expects( $this->any() )
- ->method( 'newParser' )
- ->will( $this->returnCallback( function( $parserId,
$parserOptions ) use ( $parserFoo, $parserBar ) {
- return $parserId === 'foo' ? $parserFoo :
$parserBar;
- } ) );
-
-
- return new BasicComparativeValueParser(
- $valueParserFactory,
- array(
- 'string' => 'foo',
- 'monolingualtext' => 'bar',
- 'quantity' => 'foo'
- )
- );
- }
-}
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParserTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParserTest.php
deleted file mode 100644
index 2cae965..0000000
---
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeMultilingualTextValueParserTest.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
-
-use DataValues\MonolingualTextValue;
-use DataValues\MultilingualTextValue;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeMultilingualTextValueParser;
-
-/**
- * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeMultilingualTextValueParser
- *
- * @group WikibaseQualityExternalValidation
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class ComparativeMultilingualTextValueParserTest extends
ComparativeValueParserTestBase {
-
- public function parseableProvider() {
- return array(
- array(
- $this->getDataValueMock(
'MultilingualTextValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function nonParseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'TimeValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock( 'StringValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function parsingProvider() {
- return array(
- array(
- new MultilingualTextValue( array( new
MonolingualTextValue( 'en', 'foo' ) ) ),
- $this->getDataValueMock(
'MultilingualTextValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- new MultilingualTextValue( array( new
MonolingualTextValue( 'en', 'foo' ) ) ),
- $this->getDataValueMock(
'MultilingualTextValue' ),
- 'bar',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- protected function buildParser() {
- $valueParserFactory = $this->getMockBuilder(
'Wikibase\Repo\ValueParserFactory' )
- ->setMethods( array( 'newParser' ) )
- ->disableOriginalConstructor()
- ->getMock();
- $valueParserFactory->expects( $this->any() )
- ->method( 'newParser' )
- ->will( $this->returnValue( $this->getValueParserMock(
new MonolingualTextValue( 'en', 'foo' ) ) ) );
-
-
- return new ComparativeMultilingualTextValueParser(
$valueParserFactory );
- }
-}
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeStringValueParserTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeStringValueParserTest.php
deleted file mode 100644
index 7bad9d5..0000000
---
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeStringValueParserTest.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeStringValueParser;
-use DataValues\StringValue;
-
-/**
- * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeStringValueParser
- *
- * @group WikibaseQualityExternalValidation
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class ComparativeStringValueParserTest extends ComparativeValueParserTestBase {
-
- public function parseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'StringValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function nonParseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'TimeValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock(
'MultilingualTextValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function parsingProvider() {
- return array(
- array(
- new StringValue( 'foo' ),
- $this->getDataValueMock( 'StringValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- new StringValue( 'bar' ),
- $this->getDataValueMock( 'StringValue' ),
- 'bar',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- protected function buildParser() {
- $stringNormalizer = $this->getMockBuilder(
'Wikibase\StringNormalizer' )
- ->setMethods( array( 'trimToNFC' ) )
- ->getMock();
- $stringNormalizer->expects( $this->any() )
- ->method( 'trimToNFC' )
- ->will( $this->returnArgument( 0 ) );
-
- return new ComparativeStringValueParser( $stringNormalizer );
- }
-}
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserFactoryTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserFactoryTest.php
index b076991..df7f2c7 100644
---
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserFactoryTest.php
+++
b/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserFactoryTest.php
@@ -2,10 +2,10 @@
namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParserFactory;
+use
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParserFactory;
/**
- * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParserFactory
+ * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParserFactory
*
* @group WikibaseQualityExternalValidation
*
@@ -14,33 +14,37 @@
*/
class ComparativeValueParserFactoryTest extends \MediaWikiTestCase {
- public function testNewBasicComparativeValueParser() {
- $parser = $this->getFactory()->newBasicComparativeValueParser();
- $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\BasicComparativeValueParser',
$parser );
- }
-
public function testNewComparativeStringValueParser() {
- $parser =
$this->getFactory()->newComparativeStringValueParser();
- $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeStringValueParser',
$parser );
+ $parser = $this->getFactory()->newStringValueParser();
+ $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\StringValueParser',
$parser );
}
public function testNewComparativeMultilingualTextValueParser() {
- $parser =
$this->getFactory()->newComparativeMultilingualTextValueParser();
- $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeMultilingualTextValueParser',
$parser );
+ $parser = $this->getFactory()->newMultilingualTextValueParser();
+ $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\MultilingualTextValueParser',
$parser );
}
- public function testNewDispatchingComparativeValueParser() {
- $parser =
$this->getFactory()->newDispatchingComparativeValueParser();
- $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\DispatchingComparativeValueParser',
$parser );
+ public function testNewComparativeValueParser() {
+ $dumpMetaInformation = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $parser = $this->getFactory()->newComparativeValueParser(
$dumpMetaInformation );
+ $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParser',
$parser );
}
/**
* @return ComparativeValueParserFactory
*/
private function getFactory() {
+ $valueParserMock = $this->getMockForAbstractClass(
'ValueParsers\ValueParser' );
$valueParserFactory = $this->getMockBuilder(
'Wikibase\Repo\ValueParserFactory' )
->disableOriginalConstructor()
+ ->setMethods( array( 'newParser' ) )
->getMock();
+ $valueParserFactory->expects( $this->any() )
+ ->method( 'newParser' )
+ ->will( $this->returnValue( $valueParserMock ) );
$stringNormalizer = $this->getMock( 'Wikibase\StringNormalizer'
);
return new ComparativeValueParserFactory( $valueParserFactory,
$stringNormalizer );
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserTestBase.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserTestBase.php
deleted file mode 100755
index e6fd12a..0000000
---
a/tests/phpunit/CrossCheck/ComparativeValueParser/ComparativeValueParserTestBase.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
-namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
-
-use DataValues\DataValue;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParser;
-use WikibaseQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer;
-use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
-
-
-/**
- * @group WikibaseQualityExternalValidation
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-abstract class ComparativeValueParserTestBase extends \MediaWikiTestCase {
-
- /**
- * @return ComparativeValueParser
- */
- protected abstract function buildParser();
-
- public function testImplementsDataValueComparerInterface() {
- $this->assertInstanceOf(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParser',
$this->buildParser() );
- }
-
- /**
- * @dataProvider parseableProvider
- */
- public function testIsParserForReturnsTrue( DataValue $dataValue ) {
- $comparer = $this->buildParser();
- $this->assertTrue( $comparer->isParserFor( $dataValue ) );
- }
-
- public abstract function parseableProvider();
-
- /**
- * @dataProvider nonParseableProvider
- */
- public function testCanCompareReturnsFalse( DataValue $dataValue ) {
- $comparer = $this->buildParser();
- $this->assertFalse( $comparer->isParserFor( $dataValue ) );
- }
-
- public abstract function nonParseableProvider();
-
- /**
- * @dataProvider nonParseableProvider
- */
- public function testParserThrowsInvalidArgumentException( DataValue
$value, $comparativeValue, DumpMetaInformation $dumpMetaInformation ) {
- $this->setExpectedException( 'InvalidArgumentException' );
- $this->buildParser()->parseForComparison( $value,
$comparativeValue, $dumpMetaInformation );
- }
-
- /**
- * @dataProvider parsingProvider
- */
- public function testParsing( $expectedResult, DataValue $value,
$comparativeValue, DumpMetaInformation $dumpMetaInformation ) {
-
- $actualResult = $this->buildParser()->parseForComparison(
$value, $comparativeValue, $dumpMetaInformation );
-
- $this->assertEquals( $expectedResult, $actualResult );
- }
-
- public abstract function parsingProvider();
-
- /**
- * @param $name
- * @return \PHPUnit_Framework_MockObject_MockObject
- */
- protected function getDataValueMock( $name ) {
- return $this->getMockBuilder( sprintf( 'DataValues\%s', $name )
)
- ->setMethods( null )
- ->disableOriginalConstructor()
- ->getMock();
- }
-
- /**
- * @param string $returnValue
- * @return \PHPUnit_Framework_MockObject_MockObject
- */
- protected function getValueParserMock( $returnValue ) {
- $mock = $this->getMockBuilder( 'ValueParsers\ValueParser' )
- ->setMethods( array( 'parse' ) )
- ->getMock();
- $mock->expects( $this->any() )
- ->method( 'parse' )
- ->will( $this->returnValue( $returnValue ) );
-
- return $mock;
- }
-
- /**
- * @param string $language
- * @return \PHPUnit_Framework_MockObject_MockObject
- */
- protected function getDumpMetaInformationMock( $language = 'en' ) {
- $mock = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation' )
- ->disableOriginalConstructor()
- ->setMethods( array( 'getLanguage' ) )
- ->getMock();
- $mock->expects( $this->any() )
- ->method( 'getLanguage' )
- ->will( $this->returnValue( $language ) );
- return $mock;
- }
-}
\ No newline at end of file
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParserTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParserTest.php
deleted file mode 100644
index 21f58e7..0000000
---
a/tests/phpunit/CrossCheck/ComparativeValueParser/DispatchingComparativeValueParserTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
-use DataValues\DataValue;
-use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\DispatchingComparativeValueParser;
-
-/**
- * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\DispatchingComparativeValueParser
- *
- * @group WikibaseQualityExternalValidation
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class DispatchingComparativeValueParserTest extends
ComparativeValueParserTestBase {
-
- public function parseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'StringValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock( 'QuantityValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function nonParseableProvider() {
- return array(
- array(
- $this->getDataValueMock( 'TimeValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- $this->getDataValueMock(
'MultilingualTextValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- public function parsingProvider() {
- return array(
- array(
- 'foo',
- $this->getDataValueMock( 'StringValue' ),
- 'foo',
- $this->getDumpMetaInformationMock()
- ),
- array(
- 'bar',
- $this->getDataValueMock( 'QuantityValue' ),
- 'bar',
- $this->getDumpMetaInformationMock()
- )
- );
- }
-
- protected function buildParser() {
- return new DispatchingComparativeValueParser(
- array(
- $this->getComparativeValueParserMock( 'string',
'foo' ),
- $this->getComparativeValueParserMock(
'quantity', 'bar' )
- )
- );
- }
-
- /**
- * @param string $acceptedType
- * @return \PHPUnit_Framework_MockObject_MockObject
- */
- private function getComparativeValueParserMock( $acceptedType,
$parseResult ) {
- $mock = $this->getMock(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParser'
);
- $mock->expects( $this->any() )
- ->method( 'isParserFor' )
- ->will( $this->returnCallback( function( DataValue
$dataValue ) use ( $acceptedType ) {
- return $dataValue->getType() === $acceptedType;
- } ) );
- $mock->expects( $this->any() )
- ->method( 'parseForComparison' )
- ->will( $this->returnValue( $parseResult ) );
-
- return $mock;
- }
-}
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/MultilingualTextValueParserTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/MultilingualTextValueParserTest.php
new file mode 100644
index 0000000..4f25811
--- /dev/null
+++
b/tests/phpunit/CrossCheck/ComparativeValueParser/MultilingualTextValueParserTest.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
+
+use DataValues\MonolingualTextValue;
+use DataValues\MultilingualTextValue;
+use
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\MultilingualTextValueParser;
+
+/**
+ * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\MultilingualTextValueParser
+ *
+ * @group WikibaseQualityExternalValidation
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class MultilingualTextValueParserTest extends ValueParserTestBase {
+
+ public function nonParseableProvider() {
+ return array(
+ array(
+ 42
+ ),
+ array(
+ true
+ )
+ );
+ }
+
+ public function parsingProvider() {
+ return array(
+ array(
+ new MultilingualTextValue( array( new
MonolingualTextValue( 'en', 'foo' ) ) ),
+ 'foo'
+ ),
+ array(
+ new MultilingualTextValue( array( new
MonolingualTextValue( 'en', 'foo' ) ) ),
+ 'foo'
+ )
+ );
+ }
+
+ protected function buildParser() {
+ $valueParserMock = $this->getMockBuilder(
'ValueParsers\ValueParser' )
+ ->setMethods( array( 'parse' ) )
+ ->getMock();
+ $valueParserMock->expects( $this->any() )
+ ->method( 'parse' )
+ ->will( $this->returnValue( new MonolingualTextValue(
'en', 'foo' ) ) );
+
+
+ return new MultilingualTextValueParser( $valueParserMock );
+ }
+}
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/StringValueParserTest.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/StringValueParserTest.php
new file mode 100644
index 0000000..fb32239
--- /dev/null
+++ b/tests/phpunit/CrossCheck/ComparativeValueParser/StringValueParserTest.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
+
+use
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\StringValueParser;
+use DataValues\StringValue;
+
+/**
+ * @covers
WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\StringValueParser
+ *
+ * @group WikibaseQualityExternalValidation
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+class StringValueParserTest extends ValueParserTestBase {
+
+ public function nonParseableProvider() {
+ return array(
+ array(
+ 42
+ ),
+ array(
+ true
+ )
+ );
+ }
+
+ public function parsingProvider() {
+ return array(
+ array(
+ new StringValue( 'foo' ),
+ 'foo'
+ ),
+ array(
+ new StringValue( 'bar' ),
+ 'bar'
+ )
+ );
+ }
+
+ protected function buildParser() {
+ $stringNormalizer = $this->getMockBuilder(
'Wikibase\StringNormalizer' )
+ ->setMethods( array( 'trimToNFC' ) )
+ ->getMock();
+ $stringNormalizer->expects( $this->any() )
+ ->method( 'trimToNFC' )
+ ->will( $this->returnArgument( 0 ) );
+
+ return new StringValueParser( $stringNormalizer );
+ }
+}
diff --git
a/tests/phpunit/CrossCheck/ComparativeValueParser/ValueParserTestBase.php
b/tests/phpunit/CrossCheck/ComparativeValueParser/ValueParserTestBase.php
new file mode 100755
index 0000000..2bbe743
--- /dev/null
+++ b/tests/phpunit/CrossCheck/ComparativeValueParser/ValueParserTestBase.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace
WikibaseQuality\ExternalValidation\Tests\CrossCheck\ComparativeValueParser;
+
+use DataValues\DataValue;
+use ValueParsers\ValueParser;
+use
WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParser;
+use WikibaseQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer;
+use WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformation;
+
+
+/**
+ * @group WikibaseQualityExternalValidation
+ *
+ * @author BP2014N1
+ * @license GNU GPL v2+
+ */
+abstract class ValueParserTestBase extends \MediaWikiTestCase {
+
+ /**
+ * @return ValueParser
+ */
+ protected abstract function buildParser();
+
+ public function testImplementsDataValueComparerInterface() {
+ $this->assertInstanceOf( 'ValueParsers\ValueParser',
$this->buildParser() );
+ }
+
+ public abstract function nonParseableProvider();
+
+ /**
+ * @dataProvider nonParseableProvider
+ */
+ public function testParserThrowsInvalidArgumentException( $value ) {
+ $this->setExpectedException( 'InvalidArgumentException' );
+ $this->buildParser()->parse( $value );
+ }
+
+ public abstract function parsingProvider();
+
+ /**
+ * @dataProvider parsingProvider
+ */
+ public function testParsing( $expectedResult, $value ) {
+ $actualResult = $this->buildParser()->parse( $value );
+
+ $this->assertEquals( $expectedResult, $actualResult );
+ }
+}
\ No newline at end of file
diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerFactoryTest.php
b/tests/phpunit/CrossCheck/Comparer/DataValueComparerFactoryTest.php
index 8bd6ba0..116709c 100755
--- a/tests/phpunit/CrossCheck/Comparer/DataValueComparerFactoryTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/DataValueComparerFactoryTest.php
@@ -74,7 +74,9 @@
->method( 'getTermsOfEntity' )
->will( $this->returnValue( array() ) );
- return new DataValueComparerFactory( $termIndex );
+ $stringNormalizer = $this->getMock( 'Wikibase\StringNormalizer'
);
+
+ return new DataValueComparerFactory( $termIndex,
$stringNormalizer );
}
private function assertComparesWithoutException( DataValueComparer
$comparer, DataValue $value, DataValue $comparativeValue ) {
diff --git a/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php
b/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php
index d117f55..a7b90d1 100755
--- a/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php
@@ -126,19 +126,20 @@
} ) );
$stringComparer = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\Comparer\StringComparer' )
- ->setMethods( array(
'compareWithArray' ) )
- ->getMock();
+ ->disableOriginalConstructor()
+ ->setMethods( array( 'compareWithArray' ) )
+ ->getMock();
$stringComparer->expects( $this->any() )
- ->method( 'compareWithArray' )
- ->will( $this->returnCallback(
- function ( $value, array
$values ) {
- if ( in_array(
$value, $values ) ) {
- return
ComparisonResult::STATUS_MATCH;
- } else {
- return
ComparisonResult::STATUS_MISMATCH;
+ ->method( 'compareWithArray' )
+ ->will( $this->returnCallback(
+ function ( $value,
array $values ) {
+ if ( in_array(
$value, $values ) ) {
+ return
ComparisonResult::STATUS_MATCH;
+ } else {
+ return
ComparisonResult::STATUS_MISMATCH;
}
- }
- ) );
+ }
+ ) );
return new EntityIdValueComparer( $termIndex, $stringComparer );
}
diff --git
a/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php
b/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php
index a43c176..79e912a 100755
--- a/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php
@@ -77,19 +77,20 @@
protected function buildComparer() {
$stringComparer = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\Comparer\StringComparer' )
- ->setMethods( array(
'compare' ) )
- ->getMock();
+ ->disableOriginalConstructor()
+ ->setMethods( array ( 'compare' ) )
+ ->getMock();
$stringComparer->expects( $this->any() )
- ->method( 'compare' )
- ->will( $this->returnCallback(
- function ( $value1, $value2
) {
- if ( $value1 ===
$value2 ) {
- return
ComparisonResult::STATUS_MATCH;
- } else {
- return
ComparisonResult::STATUS_MISMATCH;
- }
- }
- ) );
+ ->method( 'compare' )
+ ->will( $this->returnCallback(
+
function ( $value1, $value2 ) {
+
if ( $value1 === $value2 ) {
+
return ComparisonResult::STATUS_MATCH;
+
} else {
+
return ComparisonResult::STATUS_MISMATCH;
+
}
+ }
+ ) );
return new MonolingualTextValueComparer( $stringComparer );
}
diff --git
a/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php
b/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php
index 965a982..3fdaca2 100755
--- a/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php
@@ -116,19 +116,20 @@
protected function buildComparer() {
$stringComparer = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\Comparer\StringComparer' )
- ->setMethods( array(
'compareArray' ) )
- ->getMock();
+ ->disableOriginalConstructor()
+ ->setMethods( array ( 'compare' ) )
+ ->getMock();
$stringComparer->expects( $this->any() )
- ->method( 'compareArray' )
- ->will( $this->returnCallback(
- function ( $values1, array
$values2 ) {
- if ( in_array(
$values1, $values2 ) ) {
- return
ComparisonResult::STATUS_MATCH;
- } else {
- return
ComparisonResult::STATUS_MISMATCH;
- }
- }
- ) );
+ ->method( 'compare' )
+ ->will( $this->returnCallback(
+ function (
$value1, $value2 ) {
+
if ( $value1 === $value2 ) {
+
return ComparisonResult::STATUS_MATCH;
+
} else {
+
return ComparisonResult::STATUS_MISMATCH;
+
}
+ }
+ ) );
return new MultilingualTextValueComparer( $stringComparer );
}
diff --git a/tests/phpunit/CrossCheck/Comparer/StringComparerTest.php
b/tests/phpunit/CrossCheck/Comparer/StringComparerTest.php
index 3375d60..1e73e36 100755
--- a/tests/phpunit/CrossCheck/Comparer/StringComparerTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/StringComparerTest.php
@@ -2,6 +2,7 @@
namespace WikibaseQuality\ExternalValidation\Tests\CrossCheck\Comparer;
+use Wikibase\StringNormalizer;
use WikibaseQuality\ExternalValidation\CrossCheck\Comparer\StringComparer;
use WikibaseQuality\ExternalValidation\CrossCheck\Result\ComparisonResult;
@@ -23,11 +24,12 @@
public function setUp() {
parent::setUp();
- $this->stringComparer = new StringComparer();
+ $this->stringComparer = new StringComparer( new
StringNormalizer() );
}
public function tearDown() {
unset( $this->stringComparer );
+
parent::tearDown();
}
diff --git a/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php
b/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php
index 5096815..cec9a67 100755
--- a/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php
+++ b/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php
@@ -69,19 +69,20 @@
protected function buildComparer() {
$stringComparer = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\Comparer\StringComparer' )
- ->setMethods( array(
'compare' ) )
- ->getMock();
+ ->disableOriginalConstructor()
+ ->setMethods( array ( 'compare' ) )
+ ->getMock();
$stringComparer->expects( $this->any() )
- ->method( 'compare' )
- ->will( $this->returnCallback(
- function ( $value1, $value2
) {
- if ( $value1 ===
$value2 ) {
- return
ComparisonResult::STATUS_MATCH;
- } else {
- return
ComparisonResult::STATUS_MISMATCH;
- }
- }
- ) );
+ ->method( 'compare' )
+ ->will( $this->returnCallback(
+ function ( $value1, $value2 ) {
+ if ( $value1 === $value2 ) {
+ return
ComparisonResult::STATUS_MATCH;
+ } else {
+ return
ComparisonResult::STATUS_MISMATCH;
+ }
+ }
+ ) );
return new StringValueComparer( $stringComparer );
}
diff --git a/tests/phpunit/CrossCheck/CrossCheckerTest.php
b/tests/phpunit/CrossCheck/CrossCheckerTest.php
index 72ee912..3ecb32a 100755
--- a/tests/phpunit/CrossCheck/CrossCheckerTest.php
+++ b/tests/phpunit/CrossCheck/CrossCheckerTest.php
@@ -301,12 +301,19 @@
private function getCrossChecker() {
$dataValue = $this->getMockForAbstractClass(
'DataValues\DataValue' );
- $comparativeValueParser = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\ComparativeValueParser\ComparativeValueParser'
)
-
->disableOriginalConstructor()
-
->getMock();
+ $comparativeValueParser = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParser'
)
+ ->disableOriginalConstructor()
+ ->getMock();
$comparativeValueParser->expects( $this->any() )
- ->method(
'parseForComparison' )
- ->will(
$this->returnValue( $dataValue ) );
+ ->method( 'parse' )
+ ->will( $this->returnValue( $dataValue ) );
+ $comparativeValueParserFactory = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\ValueParser\ComparativeValueParserFactory'
)
+ ->disableOriginalConstructor()
+ ->setMethods( array( 'newComparativeValueParser' ) )
+ ->getMock();
+ $comparativeValueParserFactory->expects( $this->any() )
+ ->method( 'newComparativeValueParser' )
+ ->will( $this->returnValue( $comparativeValueParser ) );
$dataValueComparer = $this->getMockBuilder(
'WikibaseQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer' )
->setMethods(
array( 'compare' ) )
@@ -327,7 +334,7 @@
return new CrossChecker(
new JsonFileEntityLookup( __DIR__ . '/testdata' ),
- $comparativeValueParser,
+ $comparativeValueParserFactory,
$dataValueComparer,
$referenceHandler,
$this->getDumpMetaInformationLookupMock(),
diff --git a/tests/phpunit/ExternalValidationServicesTest.php
b/tests/phpunit/ExternalValidationServicesTest.php
index 3d7f4ff..afe08e7 100755
--- a/tests/phpunit/ExternalValidationServicesTest.php
+++ b/tests/phpunit/ExternalValidationServicesTest.php
@@ -2,6 +2,7 @@
namespace WikibaseQuality\ExternalValidation\Tests;
+use Wikibase\Repo\WikibaseRepo;
use WikibaseQuality\ExternalValidation\ExternalValidationServices;
@@ -107,28 +108,8 @@
private function getFactory()
{
return new ExternalValidationServices(
-
$this->getMockForAbstractClass('Wikibase\Lib\Store\EntityLookup'),
-
$this->getMockForAbstractClass('Wikibase\Lib\Store\EntityRevisionLookup'),
- $this->getMockForAbstractClass('Wikibase\TermIndex'),
-
$this->getMockForAbstractClass('Wikibase\Lib\Store\TermLookup'),
-
$this->getMockForAbstractClass('Wikibase\Lib\Store\EntityTitleLookup'),
-
$this->getMockForAbstractClass('Wikibase\DataModel\Entity\EntityIdParser'),
-
$this->getMockBuilder('Wikibase\DataModel\Claim\ClaimGuidParser')->disableOriginalConstructor()->getMock(),
- $this->getValueFormatterFactoryMock(),
-
$this->getMockBuilder('Wikibase\Repo\ValueParserFactory')->disableOriginalConstructor()->getMock()
+ WikibaseRepo::getDefaultInstance(),
+ $this->getMockBuilder(
'Wikibase\Repo\ValueParserFactory' )->disableOriginalConstructor()->getMock()
);
- }
-
- private function getValueFormatterFactoryMock()
- {
- $mock =
$this->getMockBuilder('Wikibase\Lib\OutputFormatValueFormatterFactory')
- ->setMethods(array('getValueFormatter'))
- ->disableOriginalConstructor()
- ->getMock();
- $mock->expects($this->any())
- ->method('getValueFormatter')
-
->will($this->returnValue($this->getMockForAbstractClass('ValueFormatters\ValueFormatter')));
-
- return $mock;
}
}
diff --git a/tests/phpunit/Specials/SpecialCrossCheckTest.php
b/tests/phpunit/Specials/SpecialCrossCheckTest.php
index e5b0c2a..323f220 100755
--- a/tests/phpunit/Specials/SpecialCrossCheckTest.php
+++ b/tests/phpunit/Specials/SpecialCrossCheckTest.php
@@ -19,7 +19,7 @@
use Wikibase\Lib\ClaimGuidGenerator;
use Wikibase\Repo\WikibaseRepo;
use Wikibase\DataModel\Entity\EntityId;
-use WikibaseQuality\WikibaseQualityFactory;
+use WikibaseQuality\WikibaseQualityServices;
/**
@@ -79,7 +79,7 @@
protected function newSpecialPage()
{
- $wikibaseQuality = WikibaseQualityFactory::getDefaultInstance();
+ $wikibaseQualityServices =
WikibaseQualityServices::getDefaultInstance();
$externalValidationFactory =
ExternalValidationServices::getDefaultInstance();
$wikibaseRepo = WikibaseRepo::getDefaultInstance();
@@ -92,7 +92,7 @@
$wikibaseRepo->getValueFormatterFactory(),
$externalValidationFactory->getCrossCheckInteractor(),
$externalValidationFactory->getCrossCheckResultToViolationTranslator(),
- $wikibaseQuality->getViolationStore()
+ $wikibaseQualityServices->getViolationStore()
);
}
--
To view, visit https://gerrit.wikimedia.org/r/221627
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I7b5c2692bf95afecf84f30b8db04c28ae84912cd
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/WikibaseQualityExternalValidation
Gerrit-Branch: master
Gerrit-Owner: Soeren.oldag <[email protected]>
Gerrit-Reviewer: Dominic.sauer <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Soeren.oldag <[email protected]>
Gerrit-Reviewer: Tamslo <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits