Soeren.oldag has submitted this change and it was merged.

Change subject: Constraint param mandatory is saved in violation
......................................................................


Constraint param mandatory is saved in violation

Change-Id: Ica1f661c15b616662f5852ab15b2022b4060674d
---
M includes/Violations/CheckResultToViolationTranslator.php
M tests/phpunit/Violations/CheckResultToViolationTranslatorTest.php
2 files changed, 26 insertions(+), 1 deletion(-)

Approvals:
  Soeren.oldag: Verified; Looks good to me, approved



diff --git a/includes/Violations/CheckResultToViolationTranslator.php 
b/includes/Violations/CheckResultToViolationTranslator.php
index 8d1fe0f..d325e5b 100644
--- a/includes/Violations/CheckResultToViolationTranslator.php
+++ b/includes/Violations/CheckResultToViolationTranslator.php
@@ -44,7 +44,15 @@
                        $revisionId = 
$this->entityRevisionLookup->getLatestRevisionId( $entityId );
                        $status = CheckResult::STATUS_VIOLATION;
 
-                       $violationArray[ ] = new Violation( $entityId, 
$propertyId, $claimGuid, $constraintId, $constraintTypeEntityId, $revisionId, 
$status );
+            $constraintParameters = $checkResult->getParameters();
+
+            $additionalInfo = array();
+
+            if ( array_key_exists( 'constraint_status', $constraintParameters 
)) {
+                $additionalInfo['constraint_status'] = 
$constraintParameters['constraint_status'];
+            }
+
+            $violationArray[ ] = new Violation( $entityId, $propertyId, 
$claimGuid, $constraintId, $constraintTypeEntityId, $revisionId, $status, 
$additionalInfo );
                }
 
                return $violationArray;
diff --git a/tests/phpunit/Violations/CheckResultToViolationTranslatorTest.php 
b/tests/phpunit/Violations/CheckResultToViolationTranslatorTest.php
index 6bafe94..dc5e1cb 100644
--- a/tests/phpunit/Violations/CheckResultToViolationTranslatorTest.php
+++ b/tests/phpunit/Violations/CheckResultToViolationTranslatorTest.php
@@ -118,9 +118,26 @@
                $this->assertEquals( 
'wbqc|P1$aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeRange', 
$violation->getConstraintId() );
                $this->assertEquals( $checkResult->getConstraintName(), 
$violation->getConstraintTypeEntityId() );
         $this->assertEquals( 42, $violation->getRevisionId() );
+               $this->assertEquals( array(), $violation->getAdditionalInfo() );
 
        }
 
+       public function testViolationAdditionalInfo() {
+               $parameters = array( 'constraint_status' => array( 'mandatory' 
) );
+               $checkResult = new CheckResult( $this->statement, 
$this->constraintName, $parameters, 'violation', $this->message );
+               $violations = $this->translator->translateToViolation( 
$this->entity, $checkResult );
+               $this->assertEquals( 1, sizeof( $violations ) );
+
+               $violation = $violations[ 0 ];
+               $this->assertEquals( self::$idMap[ 'Q1' ], 
$violation->getEntityId() );
+               $this->assertEquals( 'P1', 
$violation->getPropertyId()->getSerialization() );
+               $this->assertEquals( $this->statement->getGuid(), 
$violation->getClaimGuid() );
+               $this->assertEquals( 
'wbqc|P1$aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeeRangemandatory', 
$violation->getConstraintId() );
+               $this->assertEquals( $checkResult->getConstraintName(), 
$violation->getConstraintTypeEntityId() );
+               $this->assertEquals( 42, $violation->getRevisionId() );
+               $this->assertEquals( 'mandatory', 
$violation->getAdditionalInfo()['constraint_status'][0] );
+       }
+
        public function testMultipleCheckResults() {
                $checkResults = array ();
                $checkResults[ ] = new CheckResult( $this->statement, 
$this->constraintName, $this->parameters, 'violation', $this->message );

-- 
To view, visit https://gerrit.wikimedia.org/r/217269
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ica1f661c15b616662f5852ab15b2022b4060674d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikidataQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Tamslo <tamaraslosa...@gmail.com>
Gerrit-Reviewer: Soeren.oldag <soeren_ol...@freenet.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to