Lucas Werkmeister (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/372171 )

Change subject: Migrate SpecialConstraintReportTest to statement parameters
......................................................................

Migrate SpecialConstraintReportTest to statement parameters

Use constraint type item IDs from the default configuration instead of
constraint type strings. This requires that we instantiate the
ConstraintReportFactory ourselves so we can inject our config into it,
which is unfortunately a rather unwieldy instantiation (mostly copied
from ConstraintReportFactory::getDefaultInstance(), except that we use a
PlainEntityIdFormatter).

Instead of making the constraint mandatory, we expect a warning
(DelegatingConstraintChecker downgrades non-mandatory violations to
warnings).

Bug: T172378
Change-Id: I26c0abce9a441b22ac8edf0d783075ff20233f60
---
M tests/phpunit/Specials/SpecialConstraintReportTest.php
1 file changed, 39 insertions(+), 9 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseQualityConstraints
 refs/changes/71/372171/1

diff --git a/tests/phpunit/Specials/SpecialConstraintReportTest.php 
b/tests/phpunit/Specials/SpecialConstraintReportTest.php
index 4b793bd..f1cd809 100644
--- a/tests/phpunit/Specials/SpecialConstraintReportTest.php
+++ b/tests/phpunit/Specials/SpecialConstraintReportTest.php
@@ -2,16 +2,22 @@
 
 namespace 
WikibaseQuality\ConstraintReport\Tests\Specials\SpecialConstraintReport;
 
+use MediaWiki\MediaWikiServices;
 use SpecialPageTestBase;
 use Wikibase\DataModel\Services\Statement\GuidGenerator;
 use Wikibase\Repo\EntityIdLabelFormatterFactory;
 use DataValues\StringValue;
+use ValueFormatters\FormatterOptions;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\Property;
+use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Statement\Statement;
+use Wikibase\Lib\SnakFormatter;
 use Wikibase\Repo\WikibaseRepo;
 use Wikibase\DataModel\Entity\EntityId;
+use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
+use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
 use WikibaseQuality\ConstraintReport\ConstraintReportFactory;
 use WikibaseQuality\ConstraintReport\Specials\SpecialConstraintReport;
 use WikibaseQuality\ConstraintReport\Tests\DefaultConfig;
@@ -66,8 +72,30 @@
        }
 
        protected function newSpecialPage() {
-               $constraintReportFactory = 
ConstraintReportFactory::getDefaultInstance();
+               $config = $this->getDefaultConfig();
                $wikibaseRepo = WikibaseRepo::getDefaultInstance();
+               $constraintParameterRenderer = new ConstraintParameterRenderer(
+                       new PlainEntityIdFormatter(),
+                       
$wikibaseRepo->getValueFormatterFactory()->getValueFormatter(
+                               SnakFormatter::FORMAT_HTML,
+                               new FormatterOptions()
+                       )
+               );
+               $constraintReportFactory = new ConstraintReportFactory(
+                       $wikibaseRepo->getEntityLookup(),
+                       $wikibaseRepo->getPropertyDataTypeLookup(),
+                       $wikibaseRepo->getStatementGuidParser(),
+                       $config,
+                       $constraintParameterRenderer,
+                       new ConstraintParameterParser(
+                               $config,
+                               
$wikibaseRepo->getBaseDataModelDeserializerFactory(),
+                               $constraintParameterRenderer
+                       ),
+                       $wikibaseRepo->getRdfVocabulary(),
+                       $wikibaseRepo->getEntityIdParser(),
+                       MediaWikiServices::getInstance()->getTitleParser()
+               );
 
                return new SpecialConstraintReport(
                        $wikibaseRepo->getEntityLookup(),
@@ -78,7 +106,7 @@
                        $wikibaseRepo->getEntityIdParser(),
                        $wikibaseRepo->getValueFormatterFactory(),
                        $constraintReportFactory->getConstraintChecker(),
-                       $this->getDefaultConfig()
+                       $config
                );
        }
 
@@ -126,14 +154,16 @@
                                [
                                        'constraint_guid' => '1',
                                        'pid' => self::$idMap[ 'P1' 
]->getNumericId(),
-                                       'constraint_type_qid' => 'Multi value',
-                                       'constraint_parameters' => 
'{"constraint_status":"mandatory"}'
+                                       'constraint_type_qid' =>
+                                               $this->getDefaultConfig()->get( 
'WBQualityConstraintsMultiValueConstraintId' ),
+                                       'constraint_parameters' => '{}'
                                ],
                                [
                                        'constraint_guid' => '3',
                                        'pid' => self::$idMap[ 'P1' 
]->getNumericId(),
-                                       'constraint_type_qid' => 'Single value',
-                                       'constraint_parameters' => 
'{"constraint_status":"mandatory"}'
+                                       'constraint_type_qid' =>
+                                               $this->getDefaultConfig()->get( 
'WBQualityConstraintsSingleValueConstraintId' ),
+                                       'constraint_parameters' => '{}'
                                ]
                        ]
                );
@@ -255,10 +285,10 @@
                        havingTextContents( 
'(wbqc-constraintreport-result-table-header-constraint)' )
                );
 
-               $matchers['value status - violation'] = both(
-                       tagMatchingOutline( '<span class="wbqc-status 
wbqc-status-violation"/>' )
+               $matchers['value status - warning'] = both(
+                       tagMatchingOutline( '<span class="wbqc-status 
wbqc-status-warning"/>' )
                )->andAlso(
-                       havingTextContents( 
'(wbqc-constraintreport-status-violation)' )
+                       havingTextContents( 
'(wbqc-constraintreport-status-warning)' )
                );
 
                $matchers['value status - compliance'] = both(

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I26c0abce9a441b22ac8edf0d783075ff20233f60
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to