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