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

Change subject: Make sure Metadata objects work with assertEquals
......................................................................


Make sure Metadata objects work with assertEquals

Some tests added in later changes use assertEquals() on Metadata
objects, which could previously failed because, for instance,

    Metadata::blank()
    Metadata::ofDependencyMetadata( DependencyMetadata::blank() )

are equivalent but not equal according to assertEquals(). To fix this,
remove the optimization of storing null instead of blank/fresh metadata
objects (which also simplifies some code), so that there is only one
representation of any metadata.

Change-Id: I60a921ba6527336e745644fddc787875fb7faf1b
---
M src/ConstraintCheck/Cache/Metadata.php
M tests/phpunit/Cache/MetadataTest.php
2 files changed, 23 insertions(+), 13 deletions(-)

Approvals:
  jenkins-bot: Verified
  Thiemo Kreuz (WMDE): Looks good to me, approved



diff --git a/src/ConstraintCheck/Cache/Metadata.php 
b/src/ConstraintCheck/Cache/Metadata.php
index c9ff9a3..acead2b 100644
--- a/src/ConstraintCheck/Cache/Metadata.php
+++ b/src/ConstraintCheck/Cache/Metadata.php
@@ -13,30 +13,35 @@
 class Metadata {
 
        /**
-        * @var CachingMetadata|null
+        * @var CachingMetadata
         */
-       private $cachingMetadata = null;
+       private $cachingMetadata;
 
        /**
-        * @var DependencyMetadata|null
+        * @var DependencyMetadata
         */
-       private $dependencyMetadata = null;
+       private $dependencyMetadata;
 
        /**
         * @return self Empty collection.
         */
        public static function blank() {
-               return new self;
+               $ret = new self;
+               $ret->cachingMetadata = CachingMetadata::fresh();
+               $ret->dependencyMetadata = DependencyMetadata::blank();
+               return $ret;
        }
 
        public static function ofCachingMetadata( CachingMetadata 
$cachingMetadata ) {
                $ret = new self;
                $ret->cachingMetadata = $cachingMetadata;
+               $ret->dependencyMetadata = DependencyMetadata::blank();
                return $ret;
        }
 
        public static function ofDependencyMetadata( DependencyMetadata 
$dependencyMetadata ) {
                $ret = new self;
+               $ret->cachingMetadata = CachingMetadata::fresh();
                $ret->dependencyMetadata = $dependencyMetadata;
                return $ret;
        }
@@ -50,12 +55,8 @@
                $cachingMetadatas = [];
                $dependencyMetadatas = [];
                foreach ( $metadatas as $metadata ) {
-                       if ( $metadata->cachingMetadata !== null ) {
-                               $cachingMetadatas[] = 
$metadata->cachingMetadata;
-                       }
-                       if ( $metadata->dependencyMetadata !== null ) {
-                               $dependencyMetadatas[] = 
$metadata->dependencyMetadata;
-                       }
+                       $cachingMetadatas[] = $metadata->cachingMetadata;
+                       $dependencyMetadatas[] = $metadata->dependencyMetadata;
                }
                $ret = new self;
                $ret->cachingMetadata = CachingMetadata::merge( 
$cachingMetadatas );
@@ -67,14 +68,14 @@
         * @return CachingMetadata
         */
        public function getCachingMetadata() {
-               return $this->cachingMetadata ?: CachingMetadata::fresh();
+               return $this->cachingMetadata;
        }
 
        /**
         * @return DependencyMetadata
         */
        public function getDependencyMetadata() {
-               return $this->dependencyMetadata ?: DependencyMetadata::blank();
+               return $this->dependencyMetadata;
        }
 
 }
diff --git a/tests/phpunit/Cache/MetadataTest.php 
b/tests/phpunit/Cache/MetadataTest.php
index e1fa48f..c69aa82 100644
--- a/tests/phpunit/Cache/MetadataTest.php
+++ b/tests/phpunit/Cache/MetadataTest.php
@@ -84,4 +84,13 @@
                ] );
        }
 
+       /**
+        * Make sure metadata objects can be compared with assertEquals(), some 
other tests rely on this
+        */
+       public function testMerge_blankEquals() {
+               $m = Metadata::merge( [ Metadata::blank() ] );
+
+               $this->assertEquals( Metadata::blank(), $m );
+       }
+
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I60a921ba6527336e745644fddc787875fb7faf1b
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Thiemo Kreuz (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to