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