Soeren.oldag has uploaded a new change for review. https://gerrit.wikimedia.org/r/205261
Change subject: DataValueComparer now return CompareResults instead of booleans. ...................................................................... DataValueComparer now return CompareResults instead of booleans. Change-Id: I23fa8eeb59a02188933e07b2aae721dc44fdaeb5 --- M includes/CrossCheck/Comparer/DataValueComparer.php M includes/CrossCheck/Comparer/EntityIdValueComparer.php M includes/CrossCheck/Comparer/GlobeCoordinateValueComparer.php M includes/CrossCheck/Comparer/MonolingualTextValueComparer.php M includes/CrossCheck/Comparer/MultilingualTextValueComparer.php M includes/CrossCheck/Comparer/QuantityValueComparer.php M includes/CrossCheck/Comparer/StringValueComparer.php M includes/CrossCheck/Comparer/TimeValueComparer.php M includes/CrossCheck/CrossChecker.php M tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php M tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/GlobeCoordinateValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/QuantityValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php M tests/phpunit/CrossCheck/Comparer/TimeValueComparerTest.php 18 files changed, 483 insertions(+), 484 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikidataQualityExternalValidation refs/changes/61/205261/1 diff --git a/includes/CrossCheck/Comparer/DataValueComparer.php b/includes/CrossCheck/Comparer/DataValueComparer.php index 39aad33..bee1543 100644 --- a/includes/CrossCheck/Comparer/DataValueComparer.php +++ b/includes/CrossCheck/Comparer/DataValueComparer.php @@ -8,6 +8,7 @@ use ValueParsers\ParserOptions; use ValueParsers\ValueParser; use Wikibase\Parsers\MonolingualTextParser; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; use WikidataQuality\ExternalValidation\DumpMetaInformation; @@ -20,132 +21,147 @@ */ abstract class DataValueComparer { - /** - * Array of registered comparers - * - * @var array - */ - private static $comparers = array ( - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\EntityIdValueComparer', - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\MonolingualTextValueComparer', - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\MultilingualTextValueComparer', - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\StringValueComparer', - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\TimeValueComparer', - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\QuantityValueComparer', - 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\GlobeCoordinateValueComparer' - ); + /** + * Array of registered comparers + * + * @var array + */ + private static $comparers = array( + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\EntityIdValueComparer', + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\MonolingualTextValueComparer', + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\MultilingualTextValueComparer', + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\StringValueComparer', + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\TimeValueComparer', + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\QuantityValueComparer', + 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\GlobeCoordinateValueComparer' + ); - /** - * Meta information of the current dump. - * - * @var DumpMetaInformation - */ - protected $dumpMetaInformation; + /** + * Meta information of the current dump. + * + * @var DumpMetaInformation + */ + protected $dumpMetaInformation; - /** - * Wikibase data value for comparison. - * - * @var array - */ - protected $localValue; + /** + * Wikibase data value for comparison. + * + * @var array + */ + protected $localValue; - /** - * Data values from external database for comparison. - * - * @var array - */ - protected $externalValues; + /** + * Data values from external database for comparison. + * + * @var array + */ + protected $externalValues; - /** - * @param DumpMetaInformation $dumpMetaInformation - * @param DataValue $localValue - Wikibase data value - * @param array $externalValues - external database data values - */ - public function __construct( DumpMetaInformation $dumpMetaInformation, DataValue $localValue, $externalValues ) { - if ( $externalValues && !is_array( $externalValues ) ) { - throw new InvalidArgumentException( '$externalValues must be null or array.' ); - } - $this->dumpMetaInformation = $dumpMetaInformation; - $this->localValue = $localValue; - $this->externalValues = $externalValues; - } + /** + * @param DumpMetaInformation $dumpMetaInformation + * @param DataValue $localValue - Wikibase data value + * @param array $externalValues - external database data values + */ + public function __construct( DumpMetaInformation $dumpMetaInformation, DataValue $localValue, $externalValues ) { + if ( $externalValues && !is_array( $externalValues ) ) { + throw new InvalidArgumentException( '$externalValues must be null or array.' ); + } + $this->dumpMetaInformation = $dumpMetaInformation; + $this->localValue = $localValue; + $this->externalValues = $externalValues; + } - /** - * Starts the comparison of given DataValue and values of external database - * - * @return bool - result of the comparison. - */ - public abstract function execute(); + /** + * Starts the comparison of given DataValue and values of external database + * + * @return CompareResult + */ + public abstract function execute(); - /** - * Returns parser that is used to parse strings of external values to Wikibase DataValues - * - * @return ValueParser - */ - protected function getExternalValueParser() { - $options = new ParserOptions(); - $options->setOption( 'valuelang', $this->dumpMetaInformation->getLanguage() ); - return new MonolingualTextParser( $options ); - } + /** + * Builds CompareResult instance for current comparison with given value + * + * @param $dataMismatch + * @return CompareResult + */ + protected function buildCompareResult( $dataMismatch ) { + return new CompareResult( + $this->localValue, + $this->externalValues, + $dataMismatch + ); + } - /** - * Parses each string in externalValues array to Wikibase DataValue - */ - protected function parseExternalValues() { - if ( $this->externalValues ) { - foreach ( $this->externalValues as $index => $externalValue ) { - if ( is_string( $externalValue ) ) { - $parsedValue = $this->getExternalValueParser()->parse( $externalValue ); - $this->externalValues[ $index ] = $parsedValue; - } - } - } - } + /** + * Returns parser that is used to parse strings of external values to Wikibase DataValues + * + * @return ValueParser + */ + protected function getExternalValueParser() { + $options = new ParserOptions(); + $options->setOption( 'valuelang', $this->dumpMetaInformation->getLanguage() ); + return new MonolingualTextParser( $options ); + } - /** - * Meta information of the current dump. - * - * @return DumpMetaInformation - */ - public function getDumpMetaInformation() { - return $this->dumpMetaInformation; - } + /** + * Parses each string in externalValues array to Wikibase DataValue. + * Must be called in DataValueComparer::execute() once. + */ + protected function parseExternalValues() { + if ( $this->externalValues ) { + foreach ( $this->externalValues as $index => $externalValue ) { + if ( is_string( $externalValue ) ) { + $parsedValue = $this->getExternalValueParser()->parse( $externalValue ); + $this->externalValues[ $index ] = $parsedValue; + } + } + } + } - /** - * Returns Wikibase data value. - * - * @return array - */ - public function getLocalValue() { - return $this->localValue; - } + /** + * Meta information of the current dump. + * + * @return DumpMetaInformation + */ + public function getDumpMetaInformation() { + return $this->dumpMetaInformation; + } - /** - * Returns external database data values. - * - * @return array - */ - public function getExternalValues() { - return $this->externalValues; - } + /** + * Returns Wikibase data value. + * + * @return array + */ + public function getLocalValue() { + return $this->localValue; + } - /** - * Returns an instance of a comparer suitable to the given DataValue - * - * @param DumpMetaInformation $dumpMetaInformation - * @param DataValue $localValue - Wikibase data value - * @param array $externalValues - external database data values - * - * @return DataValueComparer|null - */ - public static function getComparer( DumpMetaInformation $dumpMetaInformation, DataValue $localValue, array $externalValues ) { - foreach ( self::$comparers as $comparer ) { - $reflector = new ReflectionClass( $comparer ); - $acceptedDataValues = $reflector->getStaticPropertyValue( 'acceptedDataValues' ); - $dataValueClass = get_class( $localValue ); - if ( in_array( $dataValueClass, $acceptedDataValues ) ) { - return new $comparer( $dumpMetaInformation, $localValue, $externalValues ); - } - } - } + /** + * Returns external database data values. + * + * @return array + */ + public function getExternalValues() { + return $this->externalValues; + } + + /** + * Returns an instance of a comparer suitable to the given DataValue + * + * @param DumpMetaInformation $dumpMetaInformation + * @param DataValue $localValue - Wikibase data value + * @param array $externalValues - external database data values + * + * @return DataValueComparer|null + */ + public static function getComparer( DumpMetaInformation $dumpMetaInformation, DataValue $localValue, array $externalValues ) { + foreach ( self::$comparers as $comparer ) { + $reflector = new ReflectionClass( $comparer ); + $acceptedDataValues = $reflector->getStaticPropertyValue( 'acceptedDataValues' ); + $dataValueClass = get_class( $localValue ); + if ( in_array( $dataValueClass, $acceptedDataValues ) ) { + return new $comparer( $dumpMetaInformation, $localValue, $externalValues ); + } + } + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/EntityIdValueComparer.php b/includes/CrossCheck/Comparer/EntityIdValueComparer.php index b11bf8d..91627f7 100644 --- a/includes/CrossCheck/Comparer/EntityIdValueComparer.php +++ b/includes/CrossCheck/Comparer/EntityIdValueComparer.php @@ -4,6 +4,7 @@ use Wikibase\DataModel\Entity\EntityId; use Wikibase\Repo\WikibaseRepo; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; /** @@ -15,60 +16,60 @@ */ class EntityIdValueComparer extends DataValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'Wikibase\DataModel\Entity\EntityIdValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'Wikibase\DataModel\Entity\EntityIdValue' ); - /** - * Starts the comparison of given EntityIdValue and values of external database - * - * @return bool - result of the comparison. - */ - public function execute() { - $entityId = $this->localValue->getEntityId(); - $terms = $this->getTerms( $entityId, $this->dumpMetaInformation->getLanguage() ); + /** + * Starts the comparison of given EntityIdValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $entityId = $this->localValue->getEntityId(); + $terms = $this->getTerms( $entityId, $this->dumpMetaInformation->getLanguage() ); - $result = false; - if ( $this->externalValues && $terms && count( array_intersect( $terms, $this->externalValues ) ) > 0 ) { - $result = true; - } + $dataMismatch = true; + if ( $this->externalValues && $terms && count( array_intersect( $terms, $this->externalValues ) ) > 0 ) { + $dataMismatch = false; + } - $this->parseExternalValues(); + $this->parseExternalValues(); - return $result; - } + return $this->buildCompareResult( $dataMismatch ); + } - /** - * Retrieves terms (label and aliases) of a given entity in the given language - * - * @param EntityId $entityId - * @param string $language - * - * @return array - */ - private function getTerms( EntityId $entityId, $language ) { - $entity = $this->getEntityLookup()->getEntity( $entityId ); - if ( $entity ) { - $aliases = $entity->getAliases( $language ); - $label = $entity->getLabel( $language ); + /** + * Retrieves terms (label and aliases) of a given entity in the given language + * + * @param EntityId $entityId + * @param string $language + * + * @return array + */ + private function getTerms( EntityId $entityId, $language ) { + $entity = $this->getEntityLookup()->getEntity( $entityId ); + if ( $entity ) { + $aliases = $entity->getAliases( $language ); + $label = $entity->getLabel( $language ); - $terms = $aliases; - if ( $label != false ) { - $terms[ ] = $label; - } + $terms = $aliases; + if ( $label != false ) { + $terms[ ] = $label; + } - return $terms; - } - } + return $terms; + } + } - /** - * @return \Wikibase\Lib\Store\EntityLookup - * @codeCoverageIgnore - */ - protected function getEntityLookup() { - return WikibaseRepo::getDefaultInstance()->getEntityLookup(); - } + /** + * @return \Wikibase\Lib\Store\EntityLookup + * @codeCoverageIgnore + */ + protected function getEntityLookup() { + return WikibaseRepo::getDefaultInstance()->getEntityLookup(); + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/GlobeCoordinateValueComparer.php b/includes/CrossCheck/Comparer/GlobeCoordinateValueComparer.php index c1c7cdb..abe47b3 100644 --- a/includes/CrossCheck/Comparer/GlobeCoordinateValueComparer.php +++ b/includes/CrossCheck/Comparer/GlobeCoordinateValueComparer.php @@ -4,6 +4,7 @@ use DataValues\Geo\Formatters\GlobeCoordinateFormatter; use DataValues\Geo\Parsers\GlobeCoordinateParser; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; /** @@ -15,42 +16,44 @@ */ class GlobeCoordinateValueComparer extends DataValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'DataValues\Geo\Values\GlobeCoordinateValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'DataValues\Geo\Values\GlobeCoordinateValue' ); - /** - * Starts the comparison of given GlobeCoordinateValue and values of external database - * - * @return bool - result of the comparison. - */ - public function execute() { - $globeFormatter = new GlobeCoordinateFormatter(); - $formattedDataValue = $globeFormatter->format( $this->localValue ); + /** + * Starts the comparison of given GlobeCoordinateValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $globeFormatter = new GlobeCoordinateFormatter(); + $formattedDataValue = $globeFormatter->format( $this->localValue ); - $this->parseExternalValues(); + $this->parseExternalValues(); - if ( $this->externalValues ) { - foreach ( $this->externalValues as $externalValue ) { - $formattedExternalValue = $globeFormatter->format( $externalValue ); - if ( $formattedDataValue === $formattedExternalValue ) { - return true; - } - } - } + $dataMismatch = true; + if ( $this->externalValues ) { + foreach ( $this->externalValues as $externalValue ) { + $formattedExternalValue = $globeFormatter->format( $externalValue ); + if ( $formattedDataValue === $formattedExternalValue ) { + $dataMismatch = false; + break; + } + } + } - return false; - } + return $this->buildCompareResult( $dataMismatch ); + } - /** - * Returns parser that is used to parse strings of external values to Wikibase DataValues - * - * @return GlobeCoordinateParser - */ - protected function getExternalValueParser() { - return new GlobeCoordinateParser(); - } + /** + * Returns parser that is used to parse strings of external values to Wikibase DataValues + * + * @return GlobeCoordinateParser + */ + protected function getExternalValueParser() { + return new GlobeCoordinateParser(); + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/MonolingualTextValueComparer.php b/includes/CrossCheck/Comparer/MonolingualTextValueComparer.php index f7b27d2..fbed35c 100644 --- a/includes/CrossCheck/Comparer/MonolingualTextValueComparer.php +++ b/includes/CrossCheck/Comparer/MonolingualTextValueComparer.php @@ -2,6 +2,8 @@ namespace WikidataQuality\ExternalValidation\CrossCheck\Comparer; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; + /** * Class MonolingualTextValueComparer * @@ -11,26 +13,26 @@ */ class MonolingualTextValueComparer extends DataValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'DataValues\MonolingualTextValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'DataValues\MonolingualTextValue' ); - /** - * Starts the comparison of given MonolingualTextValue and values of external database - * - * @return bool - result of the comparison. - */ - public function execute() { - $result = false; - if ( $this->externalValues && in_array( $this->localValue->getText(), $this->externalValues ) ) { - $result = true; - } + /** + * Starts the comparison of given MonolingualTextValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $dataMismatch = true; + if ( $this->externalValues && in_array( $this->localValue->getText(), $this->externalValues ) ) { + $dataMismatch = false; + } - $this->parseExternalValues(); + $this->parseExternalValues(); - return $result; - } + return $this->buildCompareResult( $dataMismatch ); + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php b/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php index 434ff7f..c525a13 100644 --- a/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php +++ b/includes/CrossCheck/Comparer/MultilingualTextValueComparer.php @@ -3,6 +3,7 @@ namespace WikidataQuality\ExternalValidation\CrossCheck\Comparer; use DataValues\MultilingualTextValue; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; use WikidataQuality\ExternalValidation\DumpMetaInformation; @@ -15,47 +16,46 @@ */ class MultilingualTextValueComparer extends MonolingualTextValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'DataValues\MultilingualTextValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'DataValues\MultilingualTextValue' ); - /** - * @var MonolingualTextValueComparer - */ - private $monolingualTextValueComparer; + /** + * @var MonolingualTextValueComparer + */ + private $monolingualTextValueComparer; - /** - * @param DumpMetaInformation $dumpMetaInformation - * @param MultilingualTextValue $localValue - * @param array $externalValues - */ - public function __construct( DumpMetaInformation $dumpMetaInformation, MultilingualTextValue $localValue, array $externalValues ) { - parent::__construct( $dumpMetaInformation, $localValue, $externalValues ); + /** + * @param DumpMetaInformation $dumpMetaInformation + * @param MultilingualTextValue $localValue + * @param array $externalValues + */ + public function __construct( DumpMetaInformation $dumpMetaInformation, MultilingualTextValue $localValue, array $externalValues ) { + parent::__construct( $dumpMetaInformation, $localValue, $externalValues ); - foreach ( $localValue->getTexts() as $textValue ) { - if ( $textValue->getLanguageCode() === $dumpMetaInformation->getLanguage() ) { - $this->monolingualTextValueComparer = new MonolingualTextValueComparer( $dumpMetaInformation, $textValue, $externalValues ); - return; - } - } - } + foreach ( $localValue->getTexts() as $textValue ) { + if ( $textValue->getLanguageCode() === $dumpMetaInformation->getLanguage() ) { + $this->monolingualTextValueComparer = new MonolingualTextValueComparer( $dumpMetaInformation, $textValue, $externalValues ); + break; + } + } + } - /** - * Starts the comparison of given DataValue and values of external database - * - * @return bool - result of the comparison. - */ - public function execute() { - $this->parseExternalValues(); + /** + * Starts the comparison of given DataValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $this->parseExternalValues(); - $result = false; - if ( $this->monolingualTextValueComparer ) { - $result = $this->monolingualTextValueComparer->execute(); - } - - return $result; - } + if ( $this->monolingualTextValueComparer ) { + return $this->buildCompareResult( + $this->monolingualTextValueComparer->execute()->hasDataMismatchOccurred() + ); + } + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/QuantityValueComparer.php b/includes/CrossCheck/Comparer/QuantityValueComparer.php index 83d5f0f..2fbcf44 100644 --- a/includes/CrossCheck/Comparer/QuantityValueComparer.php +++ b/includes/CrossCheck/Comparer/QuantityValueComparer.php @@ -5,6 +5,7 @@ use ValueParsers\ParserOptions; use ValueParsers\QuantityParser; use ValueParsers\ValueParser; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; /** @@ -16,43 +17,45 @@ */ class QuantityValueComparer extends DataValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'DataValues\QuantityValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'DataValues\QuantityValue' ); - /** - * Starts the comparison of given QuantityValue and values of external database - * - * @return bool - result of the comparison. - */ - public function execute() { - $this->parseExternalValues(); + /** + * Starts the comparison of given QuantityValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $this->parseExternalValues(); - if ( $this->externalValues ) { - foreach ( $this->externalValues as $externalValue ) { - if ( $externalValue->getLowerBound() <= $this->localValue->getUpperBound() && - $externalValue->getUpperBound() >= $this->localValue->getLowerBound() - ) { - return true; - } - } - } + $dataMismatch = true; + if ( $this->externalValues ) { + foreach ( $this->externalValues as $externalValue ) { + if ( $externalValue->getLowerBound() <= $this->localValue->getUpperBound() && + $externalValue->getUpperBound() >= $this->localValue->getLowerBound() + ) { + $dataMismatch = false; + break; + } + } + } - return false; - } + return $this->buildCompareResult( $dataMismatch ); + } - /** - * Returns parser that is used to parse strings of external values to Wikibase DataValues - * - * @return GlobeCoordinateParser - */ - protected function getExternalValueParser() { - $parserOptions = new ParserOptions(); - $parserOptions->setOption( ValueParser::OPT_LANG, $this->dumpMetaInformation->getLanguage() ); + /** + * Returns parser that is used to parse strings of external values to Wikibase DataValues + * + * @return GlobeCoordinateParser + */ + protected function getExternalValueParser() { + $parserOptions = new ParserOptions(); + $parserOptions->setOption( ValueParser::OPT_LANG, $this->dumpMetaInformation->getLanguage() ); - return new QuantityParser( $parserOptions ); - } + return new QuantityParser( $parserOptions ); + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/StringValueComparer.php b/includes/CrossCheck/Comparer/StringValueComparer.php index 2d6fbcc..cbfd91c 100644 --- a/includes/CrossCheck/Comparer/StringValueComparer.php +++ b/includes/CrossCheck/Comparer/StringValueComparer.php @@ -2,6 +2,9 @@ namespace WikidataQuality\ExternalValidation\CrossCheck\Comparer; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; + + /** * Class StringValueComparer * @@ -11,26 +14,26 @@ */ class StringValueComparer extends DataValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'DataValues\StringValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'DataValues\StringValue' ); - /** - * Starts the comparison of given StringValue and values of external database - * - * @return bool - result of the comparison - */ - public function execute() { - $result = false; - if ( $this->externalValues && in_array( $this->localValue->getValue(), $this->externalValues ) ) { - $result = true; - } + /** + * Starts the comparison of given StringValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $dataMismatch = true; + if ( $this->externalValues && in_array( $this->localValue->getValue(), $this->externalValues ) ) { + $dataMismatch = false; + } - $this->parseExternalValues(); + $this->parseExternalValues(); - return $result; - } + return $this->buildCompareResult( $dataMismatch ); + } } \ No newline at end of file diff --git a/includes/CrossCheck/Comparer/TimeValueComparer.php b/includes/CrossCheck/Comparer/TimeValueComparer.php index 29ab8fc..e69fd35 100644 --- a/includes/CrossCheck/Comparer/TimeValueComparer.php +++ b/includes/CrossCheck/Comparer/TimeValueComparer.php @@ -4,12 +4,12 @@ use ValueFormatters\FormatterOptions; use ValueFormatters\ValueFormatter; -use ValueParsers\CalendarModelParser; -use ValueParsers\TimeParser; use ValueParsers\ParserOptions; +use ValueParsers\TimeParser; use ValueParsers\ValueParser; use Wikibase\Lib\MwTimeIsoFormatter; use Wikibase\Lib\Parsers\TimeParserFactory; +use WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult; /** @@ -21,49 +21,51 @@ */ class TimeValueComparer extends DataValueComparer { - /** - * Array of DataValue classes that are supported by the current comparer - * - * @var array - */ - public static $acceptedDataValues = array ( 'DataValues\TimeValue' ); + /** + * Array of DataValue classes that are supported by the current comparer + * + * @var array + */ + public static $acceptedDataValues = array( 'DataValues\TimeValue' ); - /** - * Starts the comparison of given TimeValue and values of external database - * - * @return bool - result of the comparison. - */ - public function execute() { - $formatterOptions = new FormatterOptions(); - $formatterOptions->setOption( ValueFormatter::OPT_LANG, $this->dumpMetaInformation->getLanguage() ); - $timeFormatter = new MwTimeIsoFormatter( $formatterOptions ); + /** + * Starts the comparison of given TimeValue and values of external database + * + * @return CompareResult + */ + public function execute() { + $formatterOptions = new FormatterOptions(); + $formatterOptions->setOption( ValueFormatter::OPT_LANG, $this->dumpMetaInformation->getLanguage() ); + $timeFormatter = new MwTimeIsoFormatter( $formatterOptions ); - $formattedDataValue = $timeFormatter->format( $this->localValue ); + $formattedDataValue = $timeFormatter->format( $this->localValue ); - $this->parseExternalValues(); + $this->parseExternalValues(); - if ( $this->externalValues ) { - foreach ( $this->externalValues as $externalValue ) { - $formattedExternalValue = $timeFormatter->format( $externalValue ); - if ( $formattedDataValue === $formattedExternalValue ) { - return true; - } - } - } + $dataMismatch = true; + if ( $this->externalValues ) { + foreach ( $this->externalValues as $externalValue ) { + $formattedExternalValue = $timeFormatter->format( $externalValue ); + if ( $formattedDataValue === $formattedExternalValue ) { + $dataMismatch = false; + break; + } + } + } - return false; - } + return $this->buildCompareResult( $dataMismatch ); + } - /** - * Returns parser that is used to parse strings of external values to Wikibase DataValues - * - * @return TimeParser - */ - protected function getExternalValueParser() { - $parserOptions = new ParserOptions(); - $parserOptions->setOption( ValueParser::OPT_LANG, $this->dumpMetaInformation->getLanguage() ); - $timeParserFactory = new TimeParserFactory( $parserOptions ); + /** + * Returns parser that is used to parse strings of external values to Wikibase DataValues + * + * @return TimeParser + */ + protected function getExternalValueParser() { + $parserOptions = new ParserOptions(); + $parserOptions->setOption( ValueParser::OPT_LANG, $this->dumpMetaInformation->getLanguage() ); + $timeParserFactory = new TimeParserFactory( $parserOptions ); - return $timeParserFactory->getTimeParser(); - } + return $timeParserFactory->getTimeParser(); + } } \ No newline at end of file diff --git a/includes/CrossCheck/CrossChecker.php b/includes/CrossCheck/CrossChecker.php index cd748ba..33063db 100644 --- a/includes/CrossCheck/CrossChecker.php +++ b/includes/CrossCheck/CrossChecker.php @@ -191,9 +191,7 @@ $comparer = DataValueComparer::getComparer( $dumpMetaInformation, $dataValue, $externalValues ); if ( $comparer ) { - $result = $comparer->execute(); - - return new CompareResult( $comparer->getLocalValue(), $comparer->getExternalValues(), !$result ); + return $comparer->execute(); } } } diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php index a79466f..962f3fb 100644 --- a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTest.php @@ -26,13 +26,11 @@ * @author BP2014N1 * @license GNU GPL v2+ */ -class DataValueComparerTest extends \MediaWikiTestCase -{ +class DataValueComparerTest extends \MediaWikiTestCase { /** * @dataProvider constructValidArgumentsDataProvider */ - public function testConstructValidArguments( $dumpMetaInformation, $localValue, $externalValues ) - { + public function testConstructValidArguments( $dumpMetaInformation, $localValue, $externalValues ) { $comparerMock = $this->getDataValueComparerMock( $dumpMetaInformation, $localValue, $externalValues ); $this->assertEquals( $dumpMetaInformation, $comparerMock->getDumpMetaInformation() ); @@ -44,8 +42,7 @@ * Test cases for testConstructValidArguments * @return array */ - public function constructValidArgumentsDataProvider() - { + public function constructValidArgumentsDataProvider() { return array( array( $this->getDumpMetaInformationMock(), @@ -59,8 +56,7 @@ /** * @dataProvider constructInvalidArgumentsDataProvider */ - public function testConstructInvalidArguments( $dumpMetaInformation, $localValue, $externalValues ) - { + public function testConstructInvalidArguments( $dumpMetaInformation, $localValue, $externalValues ) { $this->setExpectedException( 'InvalidArgumentException' ); $this->getDataValueComparerMock( $dumpMetaInformation, $localValue, $externalValues ); @@ -70,8 +66,7 @@ * Test cases for testConstructInvalidArguments * @return array */ - public function constructInvalidArgumentsDataProvider() - { + public function constructInvalidArgumentsDataProvider() { $dumpMetaInformation = $this->getDumpMetaInformationMock(); $localValue = new StringValue( 'foo' ); @@ -93,8 +88,7 @@ /** * @dataProvider getComparerDataProvider */ - public function testGetComparer( $dumpMetaInformation, $localValue, $externalValues, $comparerClass ) - { + public function testGetComparer( $dumpMetaInformation, $localValue, $externalValues, $comparerClass ) { $comparer = DataValueComparer::getComparer( $dumpMetaInformation, $localValue, $externalValues ); if ( $comparerClass ) { $this->assertInstanceOf( $comparerClass, $comparer ); @@ -107,8 +101,7 @@ * Test cases for testGetComparer * @return array */ - public function getComparerDataProvider() - { + public function getComparerDataProvider() { $dumpMetaInformation = $this->getDumpMetaInformationMock(); return array( @@ -171,8 +164,7 @@ * @param array $externalValues * @return \PHPUnit_Framework_MockObject_MockObject */ - private function getDataValueComparerMock( $dumpMetaInformation, $localValue, $externalValues ) - { + private function getDataValueComparerMock( $dumpMetaInformation, $localValue, $externalValues ) { return $this->getMockForAbstractClass( 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer', array( $dumpMetaInformation, $localValue, $externalValues ) @@ -183,8 +175,7 @@ * Returns DumpMetaInformation mock. * @return \PHPUnit_Framework_MockObject_MockObject */ - public function getDumpMetaInformationMock() - { + public function getDumpMetaInformationMock() { $mock = $this->getMockBuilder( 'WikidataQuality\ExternalValidation\DumpMetaInformation' ) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php index 72098d8..a7380ae 100644 --- a/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php +++ b/tests/phpunit/CrossCheck/Comparer/DataValueComparerTestBase.php @@ -7,22 +7,28 @@ * @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 -{ +abstract class DataValueComparerTestBase extends \MediaWikiTestCase { /** - * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer::getExternalValueParser - * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer::parseExternalValues * @dataProvider executeDataProvider */ - public function testExecute( $dumpMetaInformation, $localValue, $externalValues, $expectedResult, $expectedExternalValues ) - { + public function testExecute( $dumpMetaInformation, $localValue, $externalValues, $expectedDataMismatch, $expectedExternalValues ) { $comparer = $this->createComparer( $dumpMetaInformation, $localValue, $externalValues ); + $result = $comparer->execute(); - $this->assertEquals( $expectedResult, $comparer->execute() ); - $this->assertEquals( $expectedExternalValues, $comparer->getExternalValues() ); + if ( $result ) { + $this->assertEquals( $localValue, $result->getLocalValue() ); + $this->assertEquals( $expectedExternalValues, $result->getExternalValues() ); + $this->assertEquals( $expectedDataMismatch, $result->hasDataMismatchOccurred() ); + } else { + $this->assertNull( $expectedDataMismatch ); + $this->assertNull( $expectedExternalValues ); + } } /* @@ -45,8 +51,7 @@ * @param $language * @return \PHPUnit_Framework_MockObject_MockObject */ - protected function getDumpMetaInformationMock( $language ) - { + protected function getDumpMetaInformationMock( $language ) { $mock = $this->getMockBuilder( 'WikidataQuality\ExternalValidation\DumpMetaInformation' ) ->setMethods( array( 'getLanguage' ) ) ->disableOriginalConstructor() diff --git a/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php index 099c29f..5920b45 100644 --- a/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/EntityIdValueComparerTest.php @@ -10,22 +10,21 @@ /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\EntityIdValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class EntityIdValueComparerTest extends DataValueComparerTestBase -{ +class EntityIdValueComparerTest extends DataValueComparerTestBase { /** * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformationEn = $this->getDumpMetaInformationMock( 'en' ); $dumpMetaInformationDe = $this->getDumpMetaInformationMock( 'de' ); $dumpMetaInformationEs = $this->getDumpMetaInformationMock( 'es' ); @@ -37,8 +36,8 @@ $dumpMetaInformationEn, $localValueQ1, array( 'foo' ), - true, - array ( + false, + array( new MonolingualTextValue( 'en', 'foo' ) ) ), @@ -46,7 +45,7 @@ $dumpMetaInformationEn, $localValueQ1, array( 'baz' ), - false, + true, array( new MonolingualTextValue( 'en', 'baz' ) ) @@ -55,7 +54,7 @@ $dumpMetaInformationDe, $localValueQ1, array( 'Fubar' ), - true, + false, array( new MonolingualTextValue( 'de', 'Fubar' ) ) @@ -64,7 +63,7 @@ $dumpMetaInformationEs, $localValueQ1, array( 'foo' ), - false, + true, array( new MonolingualTextValue( 'es', 'foo' ) ) @@ -73,7 +72,7 @@ $dumpMetaInformationEn, $localValueQ2, array( 'foo' ), - false, + true, array( new MonolingualTextValue( 'en', 'foo' ) ) @@ -82,8 +81,7 @@ } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { $mock = $this->getMockBuilder( 'WikidataQuality\ExternalValidation\CrossCheck\Comparer\EntityIdValueComparer' ) ->setMethods( array( 'getEntityLookup' ) ) ->setConstructorArgs( array( $dumpMetaInformation, $localValue, $externalValues ) ) diff --git a/tests/phpunit/CrossCheck/Comparer/GlobeCoordinateValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/GlobeCoordinateValueComparerTest.php index 5c5ebd6..8a8814f 100644 --- a/tests/phpunit/CrossCheck/Comparer/GlobeCoordinateValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/GlobeCoordinateValueComparerTest.php @@ -6,26 +6,24 @@ use DataValues\Geo\Values\GlobeCoordinateValue; use DataValues\Geo\Values\LatLongValue; use WikidataQuality\ExternalValidation\CrossCheck\Comparer\GlobeCoordinateValueComparer; -use WikidataQuality\ExternalValidation\DumpMetaInformation; /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\GlobeCoordinateValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class GlobeCoordinateValueComparerTest extends DataValueComparerTestBase -{ +class GlobeCoordinateValueComparerTest extends DataValueComparerTestBase { /** * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformation = $this->getDumpMetaInformationMock( 'en' ); $localValue = new GlobeCoordinateValue( new LatLongValue( 64, 26 ), 1 ); @@ -34,7 +32,7 @@ $dumpMetaInformation, $localValue, array( '64.000000 N, 26.000000 E' ), - true, + false, array( new GlobeCoordinateValue( new LatLongValue( 64, 26 ), 1 ) ) @@ -43,7 +41,7 @@ $dumpMetaInformation, $localValue, array( '64 N, 26 E' ), - true, + false, array( new GlobeCoordinateValue( new LatLongValue( 64, 26 ), 1 ) ) @@ -52,7 +50,7 @@ $dumpMetaInformation, $localValue, array( '42.000000 N, 32.000000 E' ), - false, + true, array( new GlobeCoordinateValue( new LatLongValue( 42, 32 ), 1 ) ) @@ -60,8 +58,7 @@ ); } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { return new GlobeCoordinateValueComparer( $dumpMetaInformation, $localValue, $externalValues ); } } \ No newline at end of file diff --git a/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php index e5d7a91..e8535e8 100644 --- a/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/MonolingualTextValueComparerTest.php @@ -5,26 +5,24 @@ use DataValues\MonolingualTextValue; use WikidataQuality\ExternalValidation\CrossCheck\Comparer\MonolingualTextValueComparer; -use WikidataQuality\ExternalValidation\DumpMetaInformation; /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\MonolingualTextValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class MonolingualTextValueComparerTest extends DataValueComparerTestBase -{ +class MonolingualTextValueComparerTest extends DataValueComparerTestBase { /** * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformationEn = $this->getDumpMetaInformationMock( 'en' ); $dumpMetaInformationDe = $this->getDumpMetaInformationMock( 'de' ); $localValue = new MonolingualTextValue( 'en', 'foo' ); @@ -34,7 +32,7 @@ $dumpMetaInformationEn, $localValue, array( 'foo', 'bar' ), - true, + false, array( new MonolingualTextValue( 'en', 'foo' ), new MonolingualTextValue( 'en', 'bar' ) @@ -44,7 +42,7 @@ $dumpMetaInformationEn, $localValue, array( 'foobar', 'bar' ), - false, + true, array( new MonolingualTextValue( 'en', 'foobar' ), new MonolingualTextValue( 'en', 'bar' ) @@ -54,7 +52,7 @@ $dumpMetaInformationDe, $localValue, array( 'foo', 'bar' ), - true, + false, array( new MonolingualTextValue( 'de', 'foo' ), new MonolingualTextValue( 'de', 'bar' ) @@ -63,8 +61,7 @@ ); } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { return new MonolingualTextValueComparer( $dumpMetaInformation, $localValue, $externalValues ); } } \ No newline at end of file diff --git a/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php index 97c2b16..567ce28 100644 --- a/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/MultilingualTextValueComparerTest.php @@ -6,26 +6,24 @@ use DataValues\MonolingualTextValue; use DataValues\MultilingualTextValue; use WikidataQuality\ExternalValidation\CrossCheck\Comparer\MultilingualTextValueComparer; -use WikidataQuality\ExternalValidation\DumpMetaInformation; /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\MultilingualTextValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\MonolingualTextValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class MultilingualTextValueComparerTest extends DataValueComparerTestBase -{ +class MultilingualTextValueComparerTest extends DataValueComparerTestBase { /** * @dataProvider constructDataProvider */ - public function testConstruct( $dumpMetaInformation, $localValue, $externalValues ) - { + public function testConstruct( $dumpMetaInformation, $localValue, $externalValues ) { $comparer = $this->createComparer( $dumpMetaInformation, $localValue, $externalValues ); $this->assertEquals( $dumpMetaInformation, $comparer->getDumpMetaInformation() ); @@ -33,8 +31,7 @@ $this->assertEquals( $externalValues, $comparer->getExternalValues() ); } - public function constructDataProvider() - { + public function constructDataProvider() { $monolingualTextValue = new MonolingualTextValue( 'en', 'foo' ); return array( @@ -56,59 +53,54 @@ * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformationEn = $this->getDumpMetaInformationMock( 'en' ); $dumpMetaInformationDe = $this->getDumpMetaInformationMock( 'de' ); $localValueEn = new MultilingualTextValue( array( new MonolingualTextValue( 'en', 'foo' ) ) ); $localValueDe = new MultilingualTextValue( array( new MonolingualTextValue( 'de', 'foo' ) ) ); return array( - array( - $dumpMetaInformationEn, - $localValueEn, - array( 'foo', 'bar' ), - true, - array( - new MonolingualTextValue( 'en', 'foo' ), - new MonolingualTextValue( 'en', 'bar' ) - ) - ), + // Data mismatch array( $dumpMetaInformationEn, $localValueEn, array( 'foobar', 'bar' ), - false, + true, array( new MonolingualTextValue( 'en', 'foobar' ), new MonolingualTextValue( 'en', 'bar' ) ) ), - array( - $dumpMetaInformationDe, - $localValueEn, - array( 'foo', 'bar' ), - false, - array( - new MonolingualTextValue( 'de', 'foo' ), - new MonolingualTextValue( 'de', 'bar' ) - ) - ), + // No data mismatch array( $dumpMetaInformationEn, - $localValueDe, + $localValueEn, array( 'foo', 'bar' ), false, array( new MonolingualTextValue( 'en', 'foo' ), new MonolingualTextValue( 'en', 'bar' ) ) + ), + // DataValue contains no text in language of data source + array( + $dumpMetaInformationDe, + $localValueEn, + array( 'foo', 'bar' ), + null, + null + ), + array( + $dumpMetaInformationEn, + $localValueDe, + array( 'foo', 'bar' ), + null, + null ) ); } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { return new MultilingualTextValueComparer( $dumpMetaInformation, $localValue, $externalValues ); } } \ No newline at end of file diff --git a/tests/phpunit/CrossCheck/Comparer/QuantityValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/QuantityValueComparerTest.php index 31cd825..eb0346c 100644 --- a/tests/phpunit/CrossCheck/Comparer/QuantityValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/QuantityValueComparerTest.php @@ -5,26 +5,24 @@ use DataValues\QuantityValue; use WikidataQuality\ExternalValidation\CrossCheck\Comparer\QuantityValueComparer; -use WikidataQuality\ExternalValidation\DumpMetaInformation; /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\QuantityValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class QuantityValueComparerTest extends DataValueComparerTestBase -{ +class QuantityValueComparerTest extends DataValueComparerTestBase { /** * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformation = $this->getDumpMetaInformationMock( 'en' ); return array( @@ -32,7 +30,7 @@ $dumpMetaInformation, QuantityValue::newFromNumber( 42, '1', 44, 40 ), array( '42' ), - true, + false, array( QuantityValue::newFromNumber( 42, '1', 43, 41 ) ) @@ -41,7 +39,7 @@ $dumpMetaInformation, QuantityValue::newFromNumber( 42, '1', 44, 40 ), array( '41' ), - true, + false, array( QuantityValue::newFromNumber( 41, '1', 42, 40 ) ) @@ -50,7 +48,7 @@ $dumpMetaInformation, QuantityValue::newFromNumber( 42, '1' ), array( '23' ), - false, + true, array( QuantityValue::newFromNumber( 23, '1', 24, 22 ) ) @@ -59,7 +57,7 @@ $dumpMetaInformation, QuantityValue::newFromNumber( 42, '1' ), array( '42' ), - true, + false, array( QuantityValue::newFromNumber( 42, '1', 43, 41 ) ) @@ -68,7 +66,7 @@ $dumpMetaInformation, QuantityValue::newFromNumber( 42, '1' ), array( '44' ), - false, + true, array( QuantityValue::newFromNumber( 44, '1', 45, 43 ) ) @@ -76,8 +74,7 @@ ); } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { return new QuantityValueComparer( $dumpMetaInformation, $localValue, $externalValues ); } } \ No newline at end of file diff --git a/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php index f86e896..117e62c 100644 --- a/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/StringValueComparerTest.php @@ -6,26 +6,24 @@ use DataValues\MonolingualTextValue; use DataValues\StringValue; use WikidataQuality\ExternalValidation\CrossCheck\Comparer\StringValueComparer; -use WikidataQuality\ExternalValidation\DumpMetaInformation; /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\StringValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class StringValueComparerTest extends DataValueComparerTestBase -{ +class StringValueComparerTest extends DataValueComparerTestBase { /** * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformationEn = $this->getDumpMetaInformationMock( 'en' ); $dumpMetaInformationDe = $this->getDumpMetaInformationMock( 'de' ); @@ -34,7 +32,7 @@ $dumpMetaInformationEn, new StringValue( 'foo' ), array( 'foo', 'bar' ), - true, + false, array( new MonolingualTextValue( 'en', 'foo' ), new MonolingualTextValue( 'en', 'bar' ) @@ -44,7 +42,7 @@ $dumpMetaInformationEn, new StringValue( 'foo' ), array( 'foobar', 'bar' ), - false, + true, array( new MonolingualTextValue( 'en', 'foobar' ), new MonolingualTextValue( 'en', 'bar' ) @@ -54,7 +52,7 @@ $dumpMetaInformationDe, new StringValue( 'foobar' ), array( 'foobar', 'bar' ), - true, + false, array( new MonolingualTextValue( 'de', 'foobar' ), new MonolingualTextValue( 'de', 'bar' ) @@ -63,8 +61,7 @@ ); } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { return new StringValueComparer( $dumpMetaInformation, $localValue, $externalValues ); } } \ No newline at end of file diff --git a/tests/phpunit/CrossCheck/Comparer/TimeValueComparerTest.php b/tests/phpunit/CrossCheck/Comparer/TimeValueComparerTest.php index cf3b08f..3c6223b 100644 --- a/tests/phpunit/CrossCheck/Comparer/TimeValueComparerTest.php +++ b/tests/phpunit/CrossCheck/Comparer/TimeValueComparerTest.php @@ -5,26 +5,24 @@ use DataValues\TimeValue; use WikidataQuality\ExternalValidation\CrossCheck\Comparer\TimeValueComparer; -use WikidataQuality\ExternalValidation\DumpMetaInformation; /** + * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * @covers WikidataQuality\ExternalValidation\CrossCheck\Comparer\TimeValueComparer * - * @uses WikidataQuality\ExternalValidation\DumpMetaInformation + * @uses WikidataQuality\ExternalValidation\CrossCheck\Result\CompareResult * @uses WikidataQuality\ExternalValidation\CrossCheck\Comparer\DataValueComparer * * @author BP2014N1 * @license GNU GPL v2+ */ -class TimeValueComparerTest extends DataValueComparerTestBase -{ +class TimeValueComparerTest extends DataValueComparerTestBase { /** * Test cases for testExecute * @return array */ - public function executeDataProvider() - { + public function executeDataProvider() { $dumpMetaInformation = $this->getDumpMetaInformationMock( 'en' ); $localValue1955 = new TimeValue( '+0000000000001955-03-11T00:00:00Z', 0, 0, 0, 11, 'http://www.wikidata.org/entity/Q1985727' ); $localValue2015 = new TimeValue( '+0000000000002015-00-00T00:00:00Z', 0, 0, 0, 9, 'http://www.wikidata.org/entity/Q1985727' ); @@ -34,7 +32,7 @@ $dumpMetaInformation, $localValue1955, array( '11.03.1955' ), - true, + false, array( new TimeValue( '+0000000000001955-03-11T00:00:00Z', 0, 0, 0, 11, 'http://www.wikidata.org/entity/Q1985727' ) ) @@ -43,7 +41,7 @@ $dumpMetaInformation, $localValue1955, array( '1955-03-11' ), - true, + false, array( new TimeValue( '+0000000000001955-03-11T00:00:00Z', 0, 0, 0, 11, 'http://www.wikidata.org/entity/Q1985727' ) ) @@ -52,7 +50,7 @@ $dumpMetaInformation, $localValue1955, array( '1991-05-23' ), - false, + true, array( new TimeValue( '+0000000000001991-05-23T00:00:00Z', 0, 0, 0, 11, 'http://www.wikidata.org/entity/Q1985727' ) ) @@ -61,7 +59,7 @@ $dumpMetaInformation, $localValue2015, array( '2015' ), - true, + false, array( new TimeValue( '+0000000000002015-00-00T00:00:00Z', 0, 0, 0, 9, 'http://www.wikidata.org/entity/Q1985727' ) ) @@ -69,8 +67,7 @@ ); } - protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) - { + protected function createComparer( $dumpMetaInformation, $localValue, $externalValues ) { return new TimeValueComparer( $dumpMetaInformation, $localValue, $externalValues ); } } \ No newline at end of file -- To view, visit https://gerrit.wikimedia.org/r/205261 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I23fa8eeb59a02188933e07b2aae721dc44fdaeb5 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/WikidataQualityExternalValidation Gerrit-Branch: master Gerrit-Owner: Soeren.oldag <soeren_ol...@freenet.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits