jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/356154 )

Change subject: Extract ConstraintParameters trait in tests
......................................................................


Extract ConstraintParameters trait in tests

This trait instantiates services that all constraint checkers that have
parameters, and therefore all their tests, need: currently
ConstraintParameterRenderer, soon also a new class for *parsing*
constraint parameters. This lets us remove all the copied boilerplate
code for instantiating the services from the tests themselves.

(The trait also includes the DefaultConfig trait, since it will require
this trait once it gains support for the new class to parse constraint
parameters in Id47731c99b.)

Change-Id: I33bb96a96ed6cc87080bc9bb649536497c142aa9
---
M tests/phpunit/Checker/ConnectionChecker/ConflictsWithCheckerTest.php
M tests/phpunit/Checker/ConnectionChecker/InverseCheckerTest.php
M tests/phpunit/Checker/ConnectionChecker/ItemCheckerTest.php
M tests/phpunit/Checker/ConnectionChecker/SymmetricCheckerTest.php
M tests/phpunit/Checker/ConnectionChecker/TargetRequiredClaimCheckerTest.php
M tests/phpunit/Checker/OneOfChecker/OneOfCheckerTest.php
M tests/phpunit/Checker/QualifierChecker/MandatoryQualifiersCheckerTest.php
M tests/phpunit/Checker/QualifierChecker/QualifiersCheckerTest.php
M tests/phpunit/Checker/RangeChecker/DiffWithinRangeCheckerTest.php
M tests/phpunit/Checker/RangeChecker/RangeCheckerTest.php
M tests/phpunit/Checker/TypeChecker/TypeCheckerHelperTest.php
M tests/phpunit/Checker/TypeChecker/TypeCheckerTest.php
M tests/phpunit/Checker/TypeChecker/ValueTypeCheckerTest.php
A tests/phpunit/ConstraintParameters.php
M tests/phpunit/DelegatingConstraintCheckerTest.php
15 files changed, 107 insertions(+), 162 deletions(-)

Approvals:
  Jonas Kress (WMDE): Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/tests/phpunit/Checker/ConnectionChecker/ConflictsWithCheckerTest.php 
b/tests/phpunit/Checker/ConnectionChecker/ConflictsWithCheckerTest.php
index 5f4cac5..6dfeacd 100644
--- a/tests/phpunit/Checker/ConnectionChecker/ConflictsWithCheckerTest.php
+++ b/tests/phpunit/Checker/ConnectionChecker/ConflictsWithCheckerTest.php
@@ -2,18 +2,16 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\ConnectionChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Entity\EntityIdValue;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use WikibaseQuality\ConstraintReport\Constraint;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ConflictsWithChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConnectionCheckerHelper;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -28,6 +26,8 @@
  * @license GNU GPL v2+
  */
 class ConflictsWithCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -45,11 +45,6 @@
        private $connectionCheckerHelper;
 
        /**
-        * @var ConstraintParameterRenderer
-        */
-       private $constraintParameterRenderer;
-
-       /**
         * @var ConflictsWithChecker
         */
        private $checker;
@@ -59,17 +54,11 @@
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->helper = new ConstraintParameterParser();
                $this->connectionCheckerHelper = new ConnectionCheckerHelper();
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
-               $this->constraintParameterRenderer = new 
ConstraintParameterRenderer(
-                       new PlainEntityIdFormatter(),
-                       $valueFormatter
-               );
                $this->checker = new ConflictsWithChecker(
                        $this->lookup,
                        $this->helper,
                        $this->connectionCheckerHelper,
-                       $this->constraintParameterRenderer
+                       $this->getConstraintParameterRenderer()
                );
        }
 
@@ -77,7 +66,6 @@
                unset( $this->lookup );
                unset( $this->helper );
                unset( $this->connectionCheckerHelper );
-               unset( $this->constraintParameterRenderer );
                unset( $this->checker );
                parent::tearDown();
        }
@@ -98,7 +86,7 @@
 
        public function testConflictsWithConstraintProperty() {
                $entity = $this->lookup->getEntity( new ItemId( 'Q5' ) );
-               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->constraintParameterRenderer );
+               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->getConstraintParameterRenderer() );
 
                $value = new EntityIdValue( new ItemId( 'Q100' ) );
                $statement = new Statement( new PropertyValueSnak( new 
PropertyId( 'P188' ), $value ) );
@@ -113,7 +101,7 @@
 
        public function testConflictsWithConstraintPropertyButNotItem() {
                $entity = $this->lookup->getEntity( new ItemId( 'Q5' ) );
-               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->constraintParameterRenderer );
+               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->getConstraintParameterRenderer() );
 
                $value = new EntityIdValue( new ItemId( 'Q100' ) );
                $statement = new Statement( new PropertyValueSnak( new 
PropertyId( 'P188' ), $value ) );
@@ -129,7 +117,7 @@
 
        public function testConflictsWithConstraintPropertyAndItem() {
                $entity = $this->lookup->getEntity( new ItemId( 'Q5' ) );
-               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->constraintParameterRenderer );
+               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->getConstraintParameterRenderer() );
 
                $value = new EntityIdValue( new ItemId( 'Q100' ) );
                $statement = new Statement( new PropertyValueSnak( new 
PropertyId( 'P188' ), $value ) );
@@ -145,7 +133,7 @@
 
        public function testConflictsWithConstraintWithoutProperty() {
                $entity = $this->lookup->getEntity( new ItemId( 'Q4' ) );
-               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->constraintParameterRenderer );
+               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->getConstraintParameterRenderer() );
 
                $value = new EntityIdValue( new ItemId( 'Q100' ) );
                $statement = new Statement( new PropertyValueSnak( new 
PropertyId( 'P188' ), $value ) );
@@ -158,7 +146,7 @@
 
        public function testConflictsWithConstraintPropertyAndNoValue() {
                $entity = $this->lookup->getEntity( new ItemId( 'Q6' ) );
-               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->constraintParameterRenderer );
+               $this->checker = new ConflictsWithChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, 
$this->getConstraintParameterRenderer() );
 
                $value = new EntityIdValue( new ItemId( 'Q100' ) );
                $statement = new Statement( new PropertyValueSnak( new 
PropertyId( 'P188' ), $value ) );
diff --git a/tests/phpunit/Checker/ConnectionChecker/InverseCheckerTest.php 
b/tests/phpunit/Checker/ConnectionChecker/InverseCheckerTest.php
index 62f535c..c7bb5ec 100644
--- a/tests/phpunit/Checker/ConnectionChecker/InverseCheckerTest.php
+++ b/tests/phpunit/Checker/ConnectionChecker/InverseCheckerTest.php
@@ -2,8 +2,6 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\ConnectionChecker;
 
-use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -15,7 +13,7 @@
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\InverseChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConnectionCheckerHelper;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -30,6 +28,8 @@
  * @license GNU GPL v2+
  */
 class InverseCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -56,16 +56,11 @@
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->helper = new ConstraintParameterParser();
                $this->connectionCheckerHelper = new ConnectionCheckerHelper();
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->checker = new InverseChecker(
                        $this->lookup,
                        $this->helper,
                        $this->connectionCheckerHelper,
-                       new ConstraintParameterRenderer(
-                               new PlainEntityIdFormatter(),
-                               $valueFormatter
-                       )
+                       $this->getConstraintParameterRenderer()
                );
        }
 
diff --git a/tests/phpunit/Checker/ConnectionChecker/ItemCheckerTest.php 
b/tests/phpunit/Checker/ConnectionChecker/ItemCheckerTest.php
index bec8bb3..81fa223 100644
--- a/tests/phpunit/Checker/ConnectionChecker/ItemCheckerTest.php
+++ b/tests/phpunit/Checker/ConnectionChecker/ItemCheckerTest.php
@@ -2,9 +2,7 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\ConnectionChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Statement\Statement;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Entity\EntityIdValue;
 use Wikibase\DataModel\Entity\ItemId;
@@ -13,7 +11,7 @@
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\ItemChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConnectionCheckerHelper;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -28,6 +26,8 @@
  * @license GNU GPL v2+
  */
 class ItemCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -54,13 +54,12 @@
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->helper = new ConstraintParameterParser();
                $this->connectionCheckerHelper = new ConnectionCheckerHelper();
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
-               $constraintParameterRenderer = new ConstraintParameterRenderer(
-                       new PlainEntityIdFormatter(),
-                       $valueFormatter
+               $this->checker = new ItemChecker(
+                       $this->lookup,
+                       $this->helper,
+                       $this->connectionCheckerHelper,
+                       $this->getConstraintParameterRenderer()
                );
-               $this->checker = new ItemChecker( $this->lookup, $this->helper, 
$this->connectionCheckerHelper, $constraintParameterRenderer );
        }
 
        protected function tearDown() {
diff --git a/tests/phpunit/Checker/ConnectionChecker/SymmetricCheckerTest.php 
b/tests/phpunit/Checker/ConnectionChecker/SymmetricCheckerTest.php
index effc3e1..95e7c6a 100644
--- a/tests/phpunit/Checker/ConnectionChecker/SymmetricCheckerTest.php
+++ b/tests/phpunit/Checker/ConnectionChecker/SymmetricCheckerTest.php
@@ -2,9 +2,7 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\ConnectionChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -17,7 +15,7 @@
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\SymmetricChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConnectionCheckerHelper;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -32,6 +30,8 @@
  * @license GNU GPL v2+
  */
 class SymmetricCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -58,16 +58,11 @@
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->helper = new ConstraintParameterParser();
                $this->connectionCheckerHelper = new ConnectionCheckerHelper();
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->checker = new SymmetricChecker(
                        $this->lookup,
                        $this->helper,
                        $this->connectionCheckerHelper,
-                       new ConstraintParameterRenderer(
-                               new PlainEntityIdFormatter(),
-                               $valueFormatter
-                       )
+                       $this->getConstraintParameterRenderer()
                );
        }
 
diff --git 
a/tests/phpunit/Checker/ConnectionChecker/TargetRequiredClaimCheckerTest.php 
b/tests/phpunit/Checker/ConnectionChecker/TargetRequiredClaimCheckerTest.php
index b3b13b9..328fcce 100644
--- a/tests/phpunit/Checker/ConnectionChecker/TargetRequiredClaimCheckerTest.php
+++ b/tests/phpunit/Checker/ConnectionChecker/TargetRequiredClaimCheckerTest.php
@@ -2,9 +2,7 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\ConnectionChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -17,7 +15,7 @@
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\TargetRequiredClaimChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConnectionCheckerHelper;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -32,6 +30,8 @@
  * @license GNU GPL v2+
  */
 class TargetRequiredClaimCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -58,13 +58,12 @@
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->helper = new ConstraintParameterParser();
                $this->connectionCheckerHelper = new ConnectionCheckerHelper();
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
-               $constraintParameterRenderer = new ConstraintParameterRenderer(
-                       new PlainEntityIdFormatter(),
-                       $valueFormatter
+               $this->checker = new TargetRequiredClaimChecker(
+                       $this->lookup,
+                       $this->helper,
+                       $this->connectionCheckerHelper,
+                       $this->getConstraintParameterRenderer()
                );
-               $this->checker = new TargetRequiredClaimChecker( $this->lookup, 
$this->helper, $this->connectionCheckerHelper, $constraintParameterRenderer );
        }
 
        protected function tearDown() {
diff --git a/tests/phpunit/Checker/OneOfChecker/OneOfCheckerTest.php 
b/tests/phpunit/Checker/OneOfChecker/OneOfCheckerTest.php
index b535c08..cbba3bd 100644
--- a/tests/phpunit/Checker/OneOfChecker/OneOfCheckerTest.php
+++ b/tests/phpunit/Checker/OneOfChecker/OneOfCheckerTest.php
@@ -2,9 +2,7 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\OneOfChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -16,7 +14,7 @@
 use WikibaseQuality\ConstraintReport\Constraint;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\OneOfChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 
 /**
  * @covers 
\WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\OneOfChecker
@@ -31,6 +29,8 @@
  */
 class OneOfCheckerTest extends \MediaWikiTestCase {
 
+       use ConstraintParameters;
+
        /**
         * @var ConstraintParameterParser
         */
@@ -44,14 +44,9 @@
        protected function setUp() {
                parent::setUp();
                $this->helper = new ConstraintParameterParser();
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->oneOfChecker = new OneOfChecker(
                        $this->helper,
-                       new ConstraintParameterRenderer(
-                               new PlainEntityIdFormatter(),
-                               $valueFormatter
-                       )
+                       $this->getConstraintParameterRenderer()
                );
        }
 
diff --git 
a/tests/phpunit/Checker/QualifierChecker/MandatoryQualifiersCheckerTest.php 
b/tests/phpunit/Checker/QualifierChecker/MandatoryQualifiersCheckerTest.php
index cbacd0b..ab922be 100644
--- a/tests/phpunit/Checker/QualifierChecker/MandatoryQualifiersCheckerTest.php
+++ b/tests/phpunit/Checker/QualifierChecker/MandatoryQualifiersCheckerTest.php
@@ -2,16 +2,14 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\QualifierChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Statement\StatementListProvider;
 use WikibaseQuality\ConstraintReport\Constraint;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\MandatoryQualifiersChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -27,6 +25,8 @@
  */
 class MandatoryQualifiersCheckerTest extends \MediaWikiTestCase {
 
+       use ConstraintParameters;
+
        /**
         * @var ConstraintParameterParser
         */
@@ -37,27 +37,15 @@
         */
        private $lookup;
 
-       /**
-        * @var ConstraintParameterRenderer
-        */
-       private $constraintParameterRenderer;
-
        protected function setUp() {
                parent::setUp();
                $this->helper = new ConstraintParameterParser();
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
-               $this->constraintParameterRenderer = new 
ConstraintParameterRenderer(
-                       new PlainEntityIdFormatter(),
-                       $valueFormatter
-               );
        }
 
        protected function tearDown() {
                unset( $this->helper );
                unset( $this->lookup );
-               unset( $this->constraintParameterRenderer );
                parent::tearDown();
        }
 
@@ -74,7 +62,7 @@
        public function testMandatoryQualifiersConstraintValid() {
                /** @var Item $entity */
                $entity = $this->lookup->getEntity( new ItemId( 'Q5' ) );
-               $qualifierChecker = new MandatoryQualifiersChecker( 
$this->helper, $this->constraintParameterRenderer );
+               $qualifierChecker = new MandatoryQualifiersChecker( 
$this->helper, $this->getConstraintParameterRenderer() );
                $checkResult = $qualifierChecker->checkConstraint( 
$this->getFirstStatement( $entity ), $this->getConstraintMock( [ 'property' => 
'P2' ] ), $entity );
                $this->assertEquals( 'compliance', $checkResult->getStatus(), 
'check should comply' );
        }
@@ -82,7 +70,7 @@
        public function testMandatoryQualifiersConstraintInvalid() {
                /** @var Item $entity */
                $entity = $this->lookup->getEntity( new ItemId( 'Q5' ) );
-               $qualifierChecker = new MandatoryQualifiersChecker( 
$this->helper, $this->constraintParameterRenderer );
+               $qualifierChecker = new MandatoryQualifiersChecker( 
$this->helper, $this->getConstraintParameterRenderer() );
                $checkResult = $qualifierChecker->checkConstraint( 
$this->getFirstStatement( $entity ), $this->getConstraintMock( [ 'property' => 
'P2,P3' ] ), $entity );
                $this->assertEquals( 'violation', $checkResult->getStatus(), 
'check should not comply' );
        }
diff --git a/tests/phpunit/Checker/QualifierChecker/QualifiersCheckerTest.php 
b/tests/phpunit/Checker/QualifierChecker/QualifiersCheckerTest.php
index 4d67b4b..cf7820a 100644
--- a/tests/phpunit/Checker/QualifierChecker/QualifiersCheckerTest.php
+++ b/tests/phpunit/Checker/QualifierChecker/QualifiersCheckerTest.php
@@ -2,16 +2,14 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\QualifierChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Statement\StatementListProvider;
 use WikibaseQuality\ConstraintReport\Constraint;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\QualifiersChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -26,6 +24,8 @@
  * @license GNU GPL v2+
  */
 class QualifiersCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var ConstraintParameterParser
@@ -42,29 +42,17 @@
         */
        private $lookup;
 
-       /**
-        * @var ConstraintParameterRenderer
-        */
-       private $constraintParameterRenderer;
-
        protected function setUp() {
                parent::setUp();
                $this->helper = new ConstraintParameterParser();
                $this->qualifiersList = 'P580,P582,P1365,P1366,P642,P805';
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
-               $this->constraintParameterRenderer = new 
ConstraintParameterRenderer(
-                       new PlainEntityIdFormatter(),
-                       $valueFormatter
-               );
        }
 
        protected function tearDown() {
                unset( $this->helper );
                unset( $this->qualifiersList );
                unset( $this->lookup );
-               unset( $this->constraintParameterRenderer );
                parent::tearDown();
        }
 
@@ -81,7 +69,7 @@
        public function testQualifiersConstraint() {
                /** @var Item $entity */
                $entity = $this->lookup->getEntity( new ItemId( 'Q2' ) );
-               $qualifiersChecker = new QualifiersChecker( $this->helper, 
$this->constraintParameterRenderer );
+               $qualifiersChecker = new QualifiersChecker( $this->helper, 
$this->getConstraintParameterRenderer() );
                $checkResult = $qualifiersChecker->checkConstraint( 
$this->getFirstStatement( $entity ), $this->getConstraintMock( [ 'property' => 
$this->qualifiersList ] ), $entity );
                $this->assertEquals( 'compliance', $checkResult->getStatus(), 
'check should comply' );
        }
@@ -89,7 +77,7 @@
        public function testQualifiersConstraintToManyQualifiers() {
                /** @var Item $entity */
                $entity = $this->lookup->getEntity( new ItemId( 'Q3' ) );
-               $qualifiersChecker = new QualifiersChecker( $this->helper, 
$this->constraintParameterRenderer );
+               $qualifiersChecker = new QualifiersChecker( $this->helper, 
$this->getConstraintParameterRenderer() );
                $checkResult = $qualifiersChecker->checkConstraint( 
$this->getFirstStatement( $entity ), $this->getConstraintMock( [ 'property' => 
$this->qualifiersList ] ), $entity );
                $this->assertEquals( 'violation', $checkResult->getStatus(), 
'check should not comply' );
        }
@@ -97,7 +85,7 @@
        public function testQualifiersConstraintNoQualifiers() {
                /** @var Item $entity */
                $entity = $this->lookup->getEntity( new ItemId( 'Q4' ) );
-               $qualifiersChecker = new QualifiersChecker( $this->helper, 
$this->constraintParameterRenderer );
+               $qualifiersChecker = new QualifiersChecker( $this->helper, 
$this->getConstraintParameterRenderer() );
                $checkResult = $qualifiersChecker->checkConstraint( 
$this->getFirstStatement( $entity ), $this->getConstraintMock( [ 'property' => 
$this->qualifiersList ] ), $entity );
                $this->assertEquals( 'compliance', $checkResult->getStatus(), 
'check should comply' );
        }
diff --git a/tests/phpunit/Checker/RangeChecker/DiffWithinRangeCheckerTest.php 
b/tests/phpunit/Checker/RangeChecker/DiffWithinRangeCheckerTest.php
index 9ad95d6..b6a8dc6 100644
--- a/tests/phpunit/Checker/RangeChecker/DiffWithinRangeCheckerTest.php
+++ b/tests/phpunit/Checker/RangeChecker/DiffWithinRangeCheckerTest.php
@@ -2,8 +2,6 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\RangeChecker;
 
-use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -15,7 +13,7 @@
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\DiffWithinRangeChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\RangeCheckerHelper;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -30,6 +28,8 @@
  * @license GNU GPL v2+
  */
 class DiffWithinRangeCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var ConstraintParameterParser
@@ -56,15 +56,10 @@
                $this->helper = new ConstraintParameterParser();
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->timeValue = new TimeValue( 
'+00000001970-01-01T00:00:00Z', 0, 0, 0, 11, 
'http://www.wikidata.org/entity/Q1985727' );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->checker = new DiffWithinRangeChecker(
                        $this->helper,
                        new RangeCheckerHelper(),
-                       new ConstraintParameterRenderer(
-                               new PlainEntityIdFormatter(),
-                               $valueFormatter
-                       )
+                       $this->getConstraintParameterRenderer()
                );
        }
 
diff --git a/tests/phpunit/Checker/RangeChecker/RangeCheckerTest.php 
b/tests/phpunit/Checker/RangeChecker/RangeCheckerTest.php
index 6af7e0b..1200efd 100644
--- a/tests/phpunit/Checker/RangeChecker/RangeCheckerTest.php
+++ b/tests/phpunit/Checker/RangeChecker/RangeCheckerTest.php
@@ -2,9 +2,7 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\RangeChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -19,7 +17,7 @@
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Checker\RangeChecker;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\RangeCheckerHelper;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -34,6 +32,8 @@
  * @license GNU GPL v2+
  */
 class RangeCheckerTest extends \MediaWikiTestCase {
+
+       use ConstraintParameters;
 
        /**
         * @var ConstraintParameterParser
@@ -60,15 +60,10 @@
                $this->helper = new ConstraintParameterParser();
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
                $this->timeValue = new TimeValue( 
'+00000001970-01-01T00:00:00Z', 0, 0, 0, 11, 
'http://www.wikidata.org/entity/Q1985727' );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->checker = new RangeChecker(
                        $this->helper,
                        new RangeCheckerHelper(),
-                       new ConstraintParameterRenderer(
-                               new PlainEntityIdFormatter(),
-                               $valueFormatter
-                       )
+                       $this->getConstraintParameterRenderer()
                );
        }
 
diff --git a/tests/phpunit/Checker/TypeChecker/TypeCheckerHelperTest.php 
b/tests/phpunit/Checker/TypeChecker/TypeCheckerHelperTest.php
index eb27054..df456c8 100644
--- a/tests/phpunit/Checker/TypeChecker/TypeCheckerHelperTest.php
+++ b/tests/phpunit/Checker/TypeChecker/TypeCheckerHelperTest.php
@@ -3,8 +3,6 @@
 namespace WikibaseQuality\ConstraintReport\Test\TypeChecker;
 
 use PHPUnit_Framework_TestCase;
-use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Services\Lookup\EntityLookup;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -14,7 +12,7 @@
 use Wikibase\DataModel\Statement\StatementList;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\TypeCheckerHelper;
 use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
-use WikibaseQuality\ConstraintReport\Tests\DefaultConfig;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -27,7 +25,7 @@
  */
 class TypeCheckerHelperTest extends PHPUnit_Framework_TestCase {
 
-       use DefaultConfig;
+       use ConstraintParameters;
 
        /**
         * @param EntityLookup|null $entityLookup
@@ -35,15 +33,10 @@
         * @return TypeCheckerHelper
         */
        private function getHelper( EntityLookup $entityLookup = null ) {
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                return new TypeCheckerHelper(
                        $entityLookup ?: new JsonFileEntityLookup( __DIR__ ),
                        $this->getDefaultConfig(),
-                       new ConstraintParameterRenderer(
-                               new PlainEntityIdFormatter(),
-                               $valueFormatter
-                       )
+                       $this->getConstraintParameterRenderer()
                );
        }
 
diff --git a/tests/phpunit/Checker/TypeChecker/TypeCheckerTest.php 
b/tests/phpunit/Checker/TypeChecker/TypeCheckerTest.php
index 0774aab..837522d 100644
--- a/tests/phpunit/Checker/TypeChecker/TypeCheckerTest.php
+++ b/tests/phpunit/Checker/TypeChecker/TypeCheckerTest.php
@@ -2,8 +2,6 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\TypeChecker;
 
-use ValueFormatters\ValueFormatter;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Entity\EntityIdValue;
@@ -14,7 +12,7 @@
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\TypeCheckerHelper;
 use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
-use WikibaseQuality\ConstraintReport\Tests\DefaultConfig;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -30,7 +28,7 @@
  */
 class TypeCheckerTest extends \MediaWikiTestCase {
 
-       use DefaultConfig;
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -50,18 +48,13 @@
        protected function setUp() {
                parent::setUp();
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->checker = new TypeChecker(
                        $this->lookup,
                        new ConstraintParameterParser(),
                        new TypeCheckerHelper(
                                $this->lookup,
                                $this->getDefaultConfig(),
-                               new ConstraintParameterRenderer(
-                                       new PlainEntityIdFormatter(),
-                                       $valueFormatter
-                               )
+                               $this->getConstraintParameterRenderer()
                        ),
                        $this->getDefaultConfig()
                );
diff --git a/tests/phpunit/Checker/TypeChecker/ValueTypeCheckerTest.php 
b/tests/phpunit/Checker/TypeChecker/ValueTypeCheckerTest.php
index 2a8e3bd..f850f60 100644
--- a/tests/phpunit/Checker/TypeChecker/ValueTypeCheckerTest.php
+++ b/tests/phpunit/Checker/TypeChecker/ValueTypeCheckerTest.php
@@ -2,9 +2,7 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\TypeChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\EntityDocument;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Statement\Statement;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
 use Wikibase\DataModel\Entity\EntityIdValue;
@@ -18,7 +16,7 @@
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\ConstraintParameterParser;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Helper\TypeCheckerHelper;
 use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
-use WikibaseQuality\ConstraintReport\Tests\DefaultConfig;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 
 /**
@@ -34,7 +32,7 @@
  */
 class ValueTypeCheckerTest extends \MediaWikiTestCase {
 
-       use DefaultConfig;
+       use ConstraintParameters;
 
        /**
         * @var JsonFileEntityLookup
@@ -55,18 +53,13 @@
                parent::setUp();
 
                $this->lookup = new JsonFileEntityLookup( __DIR__ );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
                $this->checker = new ValueTypeChecker(
                        $this->lookup,
                        new ConstraintParameterParser(),
                        new TypeCheckerHelper(
                                $this->lookup,
                                $this->getDefaultConfig(),
-                               new ConstraintParameterRenderer(
-                                       new PlainEntityIdFormatter(),
-                                       $valueFormatter
-                               )
+                               $this->getConstraintParameterRenderer()
                        ),
                        $this->getDefaultConfig()
                );
diff --git a/tests/phpunit/ConstraintParameters.php 
b/tests/phpunit/ConstraintParameters.php
new file mode 100644
index 0000000..8711422
--- /dev/null
+++ b/tests/phpunit/ConstraintParameters.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace WikibaseQuality\ConstraintReport\Tests;
+
+use ValueFormatters\ValueFormatter;
+use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
+use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
+use Wikibase\Repo\WikibaseRepo;
+
+/**
+ * @author Lucas Werkmeister
+ * @license GNU GPL v2+
+ */
+trait ConstraintParameters {
+
+       use DefaultConfig;
+
+       /**
+        * @var ConstraintParameterRenderer
+        */
+       private $renderer;
+
+       public function getConstraintParameterRenderer() {
+               if ( $this->renderer === null ) {
+                       $valueFormatter = $this->getMock( ValueFormatter::class 
);
+                       $valueFormatter->method( 'format' )->willReturn( '' );
+                       $entityIdFormatter = new PlainEntityIdFormatter();
+                       $this->renderer = new ConstraintParameterRenderer(
+                               $entityIdFormatter,
+                               $valueFormatter
+                       );
+               }
+
+               return $this->renderer;
+       }
+
+}
diff --git a/tests/phpunit/DelegatingConstraintCheckerTest.php 
b/tests/phpunit/DelegatingConstraintCheckerTest.php
index 0438dcd..ee1e980 100644
--- a/tests/phpunit/DelegatingConstraintCheckerTest.php
+++ b/tests/phpunit/DelegatingConstraintCheckerTest.php
@@ -2,15 +2,12 @@
 
 namespace WikibaseQuality\ConstraintReport\Test\ConstraintChecker;
 
-use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\ItemIdParser;
-use Wikibase\DataModel\Services\EntityId\PlainEntityIdFormatter;
 use Wikibase\DataModel\Services\Statement\StatementGuidParser;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\DelegatingConstraintChecker;
-use WikibaseQuality\ConstraintReport\ConstraintParameterRenderer;
 use WikibaseQuality\ConstraintReport\ConstraintReportFactory;
-use WikibaseQuality\ConstraintReport\Tests\DefaultConfig;
+use WikibaseQuality\ConstraintReport\Tests\ConstraintParameters;
 use WikibaseQuality\Tests\Helper\JsonFileEntityLookup;
 use Wikimedia\Rdbms\DBUnexpectedError;
 
@@ -46,7 +43,7 @@
  */
 class DelegatingConstraintCheckerTest extends \MediaWikiTestCase {
 
-       use DefaultConfig;
+       use ConstraintParameters;
 
        /**
         * @var DelegatingConstraintChecker
@@ -67,17 +64,12 @@
                parent::setUp();
                $this->lookup = $this->createEntityLookup();
                $this->statementGuidParser = new StatementGuidParser( new 
ItemIdParser() );
-               $valueFormatter = $this->getMock( ValueFormatter::class );
-               $valueFormatter->method( 'format' )->willReturn( '' );
-               $entityIdFormatter = new PlainEntityIdFormatter();
+               $config = $this->getDefaultConfig();
                $factory = new ConstraintReportFactory(
                        $this->lookup,
                        $this->statementGuidParser,
-                       $this->getDefaultConfig(),
-                       new ConstraintParameterRenderer(
-                               $entityIdFormatter,
-                               $valueFormatter
-                       )
+                       $config,
+                       $this->getConstraintParameterRenderer()
                );
                $this->constraintChecker = $factory->getConstraintChecker();
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I33bb96a96ed6cc87080bc9bb649536497c142aa9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <lucas.werkmeis...@wikimedia.de>
Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to