jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/346978 )
Change subject: Store constraint ID in check result
......................................................................
Store constraint ID in check result
The API will return constraint IDs for each result (and also allow
limiting the set of constraints that are checked in the first place), so
we need to store that information.
Change-Id: Iba5a8c8bd4eb02aebace8d1a3d35eae67913534a
---
M includes/ConstraintCheck/Checker/CommonsLinkChecker.php
M includes/ConstraintCheck/Checker/ConflictsWithChecker.php
M includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php
M includes/ConstraintCheck/Checker/FormatChecker.php
M includes/ConstraintCheck/Checker/InverseChecker.php
M includes/ConstraintCheck/Checker/ItemChecker.php
M includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php
M includes/ConstraintCheck/Checker/MultiValueChecker.php
M includes/ConstraintCheck/Checker/OneOfChecker.php
M includes/ConstraintCheck/Checker/QualifierChecker.php
M includes/ConstraintCheck/Checker/QualifiersChecker.php
M includes/ConstraintCheck/Checker/RangeChecker.php
M includes/ConstraintCheck/Checker/SingleValueChecker.php
M includes/ConstraintCheck/Checker/SymmetricChecker.php
M includes/ConstraintCheck/Checker/TargetRequiredClaimChecker.php
M includes/ConstraintCheck/Checker/TypeChecker.php
M includes/ConstraintCheck/Checker/UniqueValueChecker.php
M includes/ConstraintCheck/Checker/ValueTypeChecker.php
M includes/ConstraintCheck/DelegatingConstraintChecker.php
M includes/ConstraintCheck/Result/CheckResult.php
M tests/phpunit/Fake/FakeChecker.php
M tests/phpunit/Result/CheckResultTest.php
22 files changed, 82 insertions(+), 58 deletions(-)
Approvals:
Jonas Kress (WMDE): Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/ConstraintCheck/Checker/CommonsLinkChecker.php
b/includes/ConstraintCheck/Checker/CommonsLinkChecker.php
index 1452e45..77a8809 100644
--- a/includes/ConstraintCheck/Checker/CommonsLinkChecker.php
+++ b/includes/ConstraintCheck/Checker/CommonsLinkChecker.php
@@ -60,7 +60,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -72,7 +72,7 @@
*/
if ( $dataValue->getType() !== 'string' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'string' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$commonsLink = $dataValue->getValue();
@@ -96,7 +96,7 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
/**
diff --git a/includes/ConstraintCheck/Checker/ConflictsWithChecker.php
b/includes/ConstraintCheck/Checker/ConflictsWithChecker.php
index d144d09..5671dcb 100644
--- a/includes/ConstraintCheck/Checker/ConflictsWithChecker.php
+++ b/includes/ConstraintCheck/Checker/ConflictsWithChecker.php
@@ -64,7 +64,7 @@
*/
if ( !array_key_exists( 'property', $constraintParameters ) ) {
$message = wfMessage(
"wbqc-violation-message-parameter-needed" )->params(
$constraint->getConstraintTypeName(), 'property' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$parameters['property'] =
$this->constraintParameterParser->parseSingleParameter(
$constraintParameters['property'] );
@@ -95,7 +95,7 @@
}
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php
b/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php
index 4a86ce3..cb5764f 100644
--- a/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php
+++ b/includes/ConstraintCheck/Checker/DiffWithinRangeChecker.php
@@ -68,7 +68,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -91,7 +91,7 @@
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'quantity" or "time' )->escaped();
}
if ( isset( $message ) ) {
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$thisValue = $this->rangeCheckerHelper->getComparativeValue(
$dataValue );
@@ -108,7 +108,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-diff-within-range-property-needs value" )->escaped();
- return new CheckResult(
$entity->getId(), $statement, $constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult(
$entity->getId(), $statement, $constraint->getConstraintTypeQid(),
$constraint->getConstraintId(), $parameters, CheckResult::STATUS_VIOLATION,
$message );
}
if ( $mainSnak->getDataValue()->getType() ===
$dataValue->getType() && $mainSnak->getType() === 'value' ) {
@@ -129,13 +129,13 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(),
$statement, $constraint->getConstraintTypeQid(), $parameters, $status, $message
);
+ return new CheckResult( $entity->getId(),
$statement, $constraint->getConstraintTypeQid(),
$constraint->getConstraintId(), $parameters, $status, $message );
}
}
$message = wfMessage(
"wbqc-violation-message-diff-within-range-property-must-exist" )->escaped();
$status = CheckResult::STATUS_VIOLATION;
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/FormatChecker.php
b/includes/ConstraintCheck/Checker/FormatChecker.php
index 867ed09..a2fe888 100644
--- a/includes/ConstraintCheck/Checker/FormatChecker.php
+++ b/includes/ConstraintCheck/Checker/FormatChecker.php
@@ -48,7 +48,7 @@
$parameters['pattern'] =
$this->helper->parseSingleParameter( $pattern, true );
} else {
$message = wfMessage(
"wbqc-violation-message-parameter-needed" )->params(
$constraint->getConstraintTypeName(), 'pattern' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
if ( array_key_exists( 'constraint_status',
$constraintParameters ) ) {
@@ -63,7 +63,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -75,11 +75,11 @@
*/
if ( $dataValue->getType() !== 'string' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'string' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$message = wfMessage( 'wbqc-violation-message-security-reason'
)->params( $constraint->getConstraintTypeName(), 'string' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, CheckResult::STATUS_TODO,
$message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_TODO, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/InverseChecker.php
b/includes/ConstraintCheck/Checker/InverseChecker.php
index ba52d56..92d14d8 100644
--- a/includes/ConstraintCheck/Checker/InverseChecker.php
+++ b/includes/ConstraintCheck/Checker/InverseChecker.php
@@ -76,7 +76,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -88,20 +88,20 @@
*/
if ( $dataValue->getType() !== 'wikibase-entityid' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'wikibase-entityid' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/** @var EntityIdValue $dataValue */
if ( !array_key_exists( 'property', $constraintParameters ) ) {
$message = wfMessage(
"wbqc-violation-message-property-needed" )->params(
$constraint->getConstraintTypeName(), 'property' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$property = $constraintParameters['property'];
$targetItem = $this->entityLookup->getEntity(
$dataValue->getEntityId() );
if ( $targetItem === null ) {
$message = wfMessage(
"wbqc-violation-message-target-entity-must-exist" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$targetItemStatementList = $targetItem->getStatements();
@@ -113,7 +113,7 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/ItemChecker.php
b/includes/ConstraintCheck/Checker/ItemChecker.php
index 2b5c0a3..d6e988f 100644
--- a/includes/ConstraintCheck/Checker/ItemChecker.php
+++ b/includes/ConstraintCheck/Checker/ItemChecker.php
@@ -76,7 +76,7 @@
*/
if ( !$property ) {
$message = wfMessage(
"wbqc-violation-message-property-needed" )->params(
$constraint->getConstraintTypeName(), 'property' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/*
@@ -102,7 +102,7 @@
}
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php
b/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php
index 8c8087c..d29471a 100644
--- a/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php
+++ b/includes/ConstraintCheck/Checker/MandatoryQualifiersChecker.php
@@ -67,7 +67,7 @@
}
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/MultiValueChecker.php
b/includes/ConstraintCheck/Checker/MultiValueChecker.php
index 68c08ca..de26cce 100644
--- a/includes/ConstraintCheck/Checker/MultiValueChecker.php
+++ b/includes/ConstraintCheck/Checker/MultiValueChecker.php
@@ -50,7 +50,7 @@
$status = CheckResult::STATUS_COMPLIANCE;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/OneOfChecker.php
b/includes/ConstraintCheck/Checker/OneOfChecker.php
index 03c025e..6193343 100644
--- a/includes/ConstraintCheck/Checker/OneOfChecker.php
+++ b/includes/ConstraintCheck/Checker/OneOfChecker.php
@@ -62,7 +62,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
'One of', $parameters, CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
'One of', $constraint->getConstraintId(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -74,13 +74,13 @@
*/
if ( $dataValue->getType() !== 'wikibase-entityid' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'wikibase-entityid' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/** @var EntityIdValue $dataValue */
if ( !$items ) {
$message = wfMessage(
"wbqc-violation-message-property-needed" )->params(
$constraint->getConstraintTypeName(), 'property' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
if ( in_array( $dataValue->getEntityId()->getSerialization(),
$items ) ) {
@@ -91,7 +91,7 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/QualifierChecker.php
b/includes/ConstraintCheck/Checker/QualifierChecker.php
index 49c3aa3..857d6b1 100644
--- a/includes/ConstraintCheck/Checker/QualifierChecker.php
+++ b/includes/ConstraintCheck/Checker/QualifierChecker.php
@@ -41,7 +41,7 @@
*/
public function checkConstraint( Statement $statement, Constraint
$constraint, EntityDocument $entity ) {
$message = wfMessage( "wbqc-violation-message-qualifier"
)->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), array (), CheckResult::STATUS_VIOLATION,
$message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(), array (),
CheckResult::STATUS_VIOLATION, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/QualifiersChecker.php
b/includes/ConstraintCheck/Checker/QualifiersChecker.php
index cbd7d1a..2b8b3ff 100644
--- a/includes/ConstraintCheck/Checker/QualifiersChecker.php
+++ b/includes/ConstraintCheck/Checker/QualifiersChecker.php
@@ -65,7 +65,7 @@
}
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/RangeChecker.php
b/includes/ConstraintCheck/Checker/RangeChecker.php
index eea4d2c..3a494fa 100644
--- a/includes/ConstraintCheck/Checker/RangeChecker.php
+++ b/includes/ConstraintCheck/Checker/RangeChecker.php
@@ -63,7 +63,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -95,7 +95,7 @@
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'quantity" or "time' )->escaped();
}
if ( isset( $message ) ) {
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$comparativeValue =
$this->rangeCheckerHelper->getComparativeValue( $dataValue );
@@ -108,7 +108,7 @@
$status = CheckResult::STATUS_COMPLIANCE;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/SingleValueChecker.php
b/includes/ConstraintCheck/Checker/SingleValueChecker.php
index 398df13..5ae9b70 100644
--- a/includes/ConstraintCheck/Checker/SingleValueChecker.php
+++ b/includes/ConstraintCheck/Checker/SingleValueChecker.php
@@ -50,7 +50,7 @@
$status = CheckResult::STATUS_COMPLIANCE;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/SymmetricChecker.php
b/includes/ConstraintCheck/Checker/SymmetricChecker.php
index 8b95d40..6ab2254 100644
--- a/includes/ConstraintCheck/Checker/SymmetricChecker.php
+++ b/includes/ConstraintCheck/Checker/SymmetricChecker.php
@@ -73,7 +73,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -84,14 +84,14 @@
*/
if ( $dataValue->getType() !== 'wikibase-entityid' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName(), 'wikibase-entityid' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/** @var EntityIdValue $dataValue */
$targetItem = $this->entityLookup->getEntity(
$dataValue->getEntityId() );
if ( $targetItem === null ) {
$message = wfMessage(
"wbqc-violation-message-target-entity-must-exist" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$targetItemStatementList = $targetItem->getStatements();
@@ -103,7 +103,7 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/TargetRequiredClaimChecker.php
b/includes/ConstraintCheck/Checker/TargetRequiredClaimChecker.php
index e722282..251c510 100644
--- a/includes/ConstraintCheck/Checker/TargetRequiredClaimChecker.php
+++ b/includes/ConstraintCheck/Checker/TargetRequiredClaimChecker.php
@@ -84,7 +84,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -96,19 +96,19 @@
*/
if ( $dataValue->getType() !== 'wikibase-entityid' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeName(), 'wikibase-entityid' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/** @var EntityIdValue $dataValue */
if ( !$property ) {
$message = wfMessage(
"wbqc-violation-message-property-needed" )->params(
$constraint->getConstraintTypeName(), 'property' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$targetEntity = $this->entityLookup->getEntity(
$dataValue->getEntityId() );
if ( $targetEntity === null ) {
$message = wfMessage(
"wbqc-violation-message-target-entity-must-exist" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$targetEntityStatementList = $targetEntity->getStatements();
@@ -135,7 +135,7 @@
}
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/TypeChecker.php
b/includes/ConstraintCheck/Checker/TypeChecker.php
index b11c4d5..5917be3 100644
--- a/includes/ConstraintCheck/Checker/TypeChecker.php
+++ b/includes/ConstraintCheck/Checker/TypeChecker.php
@@ -79,7 +79,7 @@
*/
if ( !$classes ) {
$message = wfMessage(
"wbqc-violation-message-parameter-needed" )->params(
$constraint->getConstraintTypeName(), 'class' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/*
@@ -92,7 +92,7 @@
$relationId = self::subclassId;
} else {
$message = wfMessage(
"wbqc-violation-message-type-relation-instance-or-subclass" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
if ( $this->typeCheckerHelper->hasClassInRelation(
$entity->getStatements(), $relationId, $classes ) ) {
@@ -103,7 +103,7 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/UniqueValueChecker.php
b/includes/ConstraintCheck/Checker/UniqueValueChecker.php
index 082a82a..80b6c62 100644
--- a/includes/ConstraintCheck/Checker/UniqueValueChecker.php
+++ b/includes/ConstraintCheck/Checker/UniqueValueChecker.php
@@ -40,7 +40,7 @@
$parameters = array ();
$message = wfMessage(
"wbqc-violation-message-not-yet-implemented" )->params(
$constraint->getConstraintTypeName() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, CheckResult::STATUS_TODO,
$message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_TODO, $message );
}
}
diff --git a/includes/ConstraintCheck/Checker/ValueTypeChecker.php
b/includes/ConstraintCheck/Checker/ValueTypeChecker.php
index ee3ba0b..4e8fe69 100644
--- a/includes/ConstraintCheck/Checker/ValueTypeChecker.php
+++ b/includes/ConstraintCheck/Checker/ValueTypeChecker.php
@@ -87,7 +87,7 @@
*/
if ( !$mainSnak instanceof PropertyValueSnak ) {
$message = wfMessage(
"wbqc-violation-message-value-needed" )->params(
$constraint->getConstraintTypeQid() )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$dataValue = $mainSnak->getDataValue();
@@ -99,13 +99,13 @@
*/
if ( $dataValue->getType() !== 'wikibase-entityid' ) {
$message = wfMessage(
"wbqc-violation-message-value-needed-of-type" )->params(
$constraint->getConstraintTypeQid(), 'wikibase-entityid' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/** @var EntityIdValue $dataValue */
if ( !$classes ) {
$message = wfMessage(
"wbqc-violation-message-parameter-needed" )->params(
$constraint->getConstraintTypeQid(), 'class' )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
/*
@@ -118,14 +118,14 @@
$relationId = self::subclassId;
} else {
$message = wfMessage(
"wbqc-violation-message-type-relation-instance-or-subclass" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$item = $this->entityLookup->getEntity(
$dataValue->getEntityId() );
if ( !( $item instanceof StatementListProvider ) ) {
$message = wfMessage(
"wbqc-violation-message-value-entity-must-exist" )->escaped();
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters,
CheckResult::STATUS_VIOLATION, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, CheckResult::STATUS_VIOLATION, $message );
}
$statements = $item->getStatements();
@@ -138,7 +138,7 @@
$status = CheckResult::STATUS_VIOLATION;
}
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $parameters, $status, $message );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(),
$parameters, $status, $message );
}
}
diff --git a/includes/ConstraintCheck/DelegatingConstraintChecker.php
b/includes/ConstraintCheck/DelegatingConstraintChecker.php
index 0652262..120d9f1 100644
--- a/includes/ConstraintCheck/DelegatingConstraintChecker.php
+++ b/includes/ConstraintCheck/DelegatingConstraintChecker.php
@@ -117,7 +117,7 @@
$parameter = $constraint->getConstraintParameters();
if ( array_key_exists( 'known_exception', $parameter)
&& in_array( $entity->getId()->getSerialization(), explode( ',',
$parameter['known_exception'] ) ) ) {
$message = 'This entity is a known exception
for this constraint and has been marked as such.';
- $result[] = new CheckResult( $entity->getId(),
$statement, $constraint->getConstraintTypeQid(), array (),
CheckResult::STATUS_EXCEPTION, $message ); // todo: display parameters anyway
+ $result[] = new CheckResult( $entity->getId(),
$statement, $constraint->getConstraintTypeQid(),
$constraint->getConstraintId(), array (), CheckResult::STATUS_EXCEPTION,
$message ); // todo: display parameters anyway
continue;
}
@@ -149,7 +149,8 @@
return $result;
} else {
- return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid() );
+ return new CheckResult( $entity->getId(), $statement,
$constraint->getConstraintTypeQid(),
+ $constraint->getConstraintId(), null,
CheckResult::STATUS_TODO, null );
}
}
diff --git a/includes/ConstraintCheck/Result/CheckResult.php
b/includes/ConstraintCheck/Result/CheckResult.php
index 19618d1..c7c9c7c 100644
--- a/includes/ConstraintCheck/Result/CheckResult.php
+++ b/includes/ConstraintCheck/Result/CheckResult.php
@@ -40,6 +40,11 @@
private $constraintName;
/**
+ * @var string
+ */
+ private $constraintId;
+
+ /**
* @var array
* Includes arrays of ItemIds or PropertyIds or strings.
*/
@@ -59,14 +64,16 @@
* @param EntityId $entityId
* @param Statement $statement
* @param string $constraintName
+ * @param string $constraintId
* @param array $parameters (string => string[])
* @param string $status
* @param string $message (sanitized HTML)
*/
- public function __construct( EntityId $entityId, Statement $statement,
$constraintName, $parameters = array (), $status = self::STATUS_TODO, $message
= '' ) {
+ public function __construct( EntityId $entityId, Statement $statement,
$constraintName, $constraintId, $parameters = array (), $status =
self::STATUS_TODO, $message = '' ) {
$this->entityId = $entityId;
$this->statement = $statement;
$this->constraintName = $constraintName;
+ $this->constraintId = $constraintId;
$this->parameters = $parameters;
$this->status = $status;
$this->message = $message;
@@ -122,6 +129,13 @@
}
/**
+ * @return string
+ */
+ public function getConstraintId() {
+ return $this->constraintId;
+ }
+
+ /**
* @return array
*/
public function getParameters() {
diff --git a/tests/phpunit/Fake/FakeChecker.php
b/tests/phpunit/Fake/FakeChecker.php
index 4b4aee0..1653f9b 100644
--- a/tests/phpunit/Fake/FakeChecker.php
+++ b/tests/phpunit/Fake/FakeChecker.php
@@ -30,7 +30,7 @@
EntityDocument $entity
) {
return new CheckResult(
- $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), [], $this->status
+ $entity->getId(), $statement,
$constraint->getConstraintTypeQid(), $constraint->getConstraintId(), [],
$this->status
);
}
}
diff --git a/tests/phpunit/Result/CheckResultTest.php
b/tests/phpunit/Result/CheckResultTest.php
index 2687806..348643b 100644
--- a/tests/phpunit/Result/CheckResultTest.php
+++ b/tests/phpunit/Result/CheckResultTest.php
@@ -57,6 +57,7 @@
$this->entityId = new ItemId( 'Q1' );
$this->statement = new Statement( new PropertyValueSnak( new
PropertyId( 'P1' ), new StringValue( 'Foo' ) ) );
$this->constraintName = 'Range';
+ $this->constraintId = '1';
$this->parameters = array ();
$this->status = 'compliance';
$this->message = 'All right';
@@ -67,18 +68,23 @@
unset( $this->entityId );
unset( $this->statement );
unset( $this->constraintName );
+ unset( $this->constraintId );
unset( $this->parameters );
unset( $this->status );
unset( $this->message );
}
public function testConstructAndGetters() {
- $checkResult = new CheckResult( $this->entityId,
$this->statement, $this->constraintName, $this->parameters, $this->status,
$this->message );
+ $checkResult = new CheckResult(
+ $this->entityId, $this->statement,
$this->constraintName, $this->constraintId,
+ $this->parameters, $this->status, $this->message
+ );
$this->assertEquals( $this->entityId,
$checkResult->getEntityId() );
$this->assertEquals( $this->statement,
$checkResult->getStatement() );
$this->assertEquals( $this->statement->getPropertyId(),
$checkResult->getPropertyId() );
$this->assertEquals(
$this->statement->getMainSnak()->getDataValue(), $checkResult->getDataValue() );
$this->assertEquals( $this->constraintName,
$checkResult->getConstraintName() );
+ $this->assertEquals( $this->constraintId,
$checkResult->getConstraintId() );
$this->assertEquals( $this->parameters,
$checkResult->getParameters() );
$this->assertEquals( $this->status, $checkResult->getStatus() );
$this->assertEquals( $this->message, $checkResult->getMessage()
);
@@ -86,7 +92,10 @@
}
public function testWithWrongSnakType() {
- $checkResult = new CheckResult( $this->entityId, new Statement(
new PropertyNoValueSnak( 1 ) ), $this->constraintName, $this->parameters,
$this->status, $this->message );
+ $checkResult = new CheckResult(
+ $this->entityId, new Statement( new
PropertyNoValueSnak( 1 ) ), $this->constraintName, $this->constraintId,
+ $this->parameters, $this->status, $this->message
+ );
$this->setExpectedException( LogicException::class );
$checkResult->getDataValue();
}
--
To view, visit https://gerrit.wikimedia.org/r/346978
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iba5a8c8bd4eb02aebace8d1a3d35eae67913534a
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Olga Bode <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits