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

Change subject: Fix violation of using package private serializer 
implementations
......................................................................


Fix violation of using package private serializer implementations

These two implementations are marked as "package private", which means
it is actually forbidden to instantiate or use them in any way that
sidesteps the public methods provided by the serializer factory.

This is not some personal opinion or anything I came up with, but
clearly marked in the contract of the Wikibase DataModel Serialization
component.

Bug: T178994
Change-Id: I4cb1591c626c4b0a8b6b32a4dc1da7244baa3c5a
---
M src/DataModel/Serialization/FormSerializer.php
M 
tests/phpunit/composer/DataModel/Serialization/ExternalLexemeSerializerTest.php
M tests/phpunit/composer/DataModel/Serialization/StorageLexemeSerializerTest.php
3 files changed, 9 insertions(+), 17 deletions(-)

Approvals:
  WMDE-leszek: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/src/DataModel/Serialization/FormSerializer.php 
b/src/DataModel/Serialization/FormSerializer.php
index e7350b5..facc3cc 100644
--- a/src/DataModel/Serialization/FormSerializer.php
+++ b/src/DataModel/Serialization/FormSerializer.php
@@ -2,9 +2,8 @@
 
 namespace Wikibase\Lexeme\DataModel\Serialization;
 
+use Serializers\Serializer;
 use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\DataModel\Serializers\StatementListSerializer;
-use Wikibase\DataModel\Serializers\TermListSerializer;
 use Wikibase\Lexeme\DataModel\Form;
 
 /**
@@ -13,18 +12,18 @@
 class FormSerializer {
 
        /**
-        * @var TermListSerializer
+        * @var Serializer
         */
        private $termListSerializer;
 
        /**
-        * @var StatementListSerializer
+        * @var Serializer
         */
        private $statementListSerializer;
 
        public function __construct(
-               TermListSerializer $termListSerializer,
-               StatementListSerializer $statementListSerializer
+               Serializer $termListSerializer,
+               Serializer $statementListSerializer
        ) {
                $this->termListSerializer = $termListSerializer;
                $this->statementListSerializer = $statementListSerializer;
diff --git 
a/tests/phpunit/composer/DataModel/Serialization/ExternalLexemeSerializerTest.php
 
b/tests/phpunit/composer/DataModel/Serialization/ExternalLexemeSerializerTest.php
index d71a3b2..898e263 100644
--- 
a/tests/phpunit/composer/DataModel/Serialization/ExternalLexemeSerializerTest.php
+++ 
b/tests/phpunit/composer/DataModel/Serialization/ExternalLexemeSerializerTest.php
@@ -4,10 +4,9 @@
 
 use PHPUnit_Framework_TestCase;
 use Serializers\Exceptions\SerializationException;
+use Serializers\Serializer;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\DataModel\Serializers\StatementListSerializer;
-use Wikibase\DataModel\Serializers\TermListSerializer;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Statement\StatementList;
 use Wikibase\DataModel\Term\TermList;
@@ -27,17 +26,13 @@
 class ExternalLexemeSerializerTest extends PHPUnit_Framework_TestCase {
 
        private function newSerializer() {
-               $statementListSerializer = $this->getMockBuilder( 
StatementListSerializer::class )
-                       ->disableOriginalConstructor()
-                       ->getMock();
+               $statementListSerializer = $this->getMock( Serializer::class );
                $statementListSerializer->method( 'serialize' )
                        ->will( $this->returnCallback( function ( StatementList 
$statementList ) {
                                return implode( '|', 
$statementList->getPropertyIds() );
                        } ) );
 
-               $termListSerializer = $this->getMockBuilder( 
TermListSerializer::class )
-                       ->disableOriginalConstructor()
-                       ->getMock();
+               $termListSerializer = $this->getMock( Serializer::class );
                $termListSerializer->method( 'serialize' )
                        ->will( $this->returnCallback( function ( TermList 
$termList ) {
                                return $termList->toTextArray();
diff --git 
a/tests/phpunit/composer/DataModel/Serialization/StorageLexemeSerializerTest.php
 
b/tests/phpunit/composer/DataModel/Serialization/StorageLexemeSerializerTest.php
index 1648362..114f22e 100644
--- 
a/tests/phpunit/composer/DataModel/Serialization/StorageLexemeSerializerTest.php
+++ 
b/tests/phpunit/composer/DataModel/Serialization/StorageLexemeSerializerTest.php
@@ -13,8 +13,6 @@
 use Wikibase\DataModel\Entity\EntityIdValue;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
-use Wikibase\DataModel\Serializers\TermListSerializer;
-use Wikibase\DataModel\Serializers\TermSerializer;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
 use Wikibase\DataModel\Snak\PropertySomeValueSnak;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
@@ -228,7 +226,7 @@
                        SerializerFactory::OPTION_DEFAULT
                );
                return new StorageLexemeSerializer(
-                       new TermListSerializer( new TermSerializer(), false ),
+                       $serializerFactory->newTermListSerializer(),
                        $serializerFactory->newStatementListSerializer()
                );
        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I4cb1591c626c4b0a8b6b32a4dc1da7244baa3c5a
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Thiemo Kreuz (WMDE) <thiemo.kr...@wikimedia.de>
Gerrit-Reviewer: Jeroen De Dauw <jeroended...@gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com>
Gerrit-Reviewer: WMDE-leszek <leszek.mani...@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