Bene has uploaded a new change for review.
https://gerrit.wikimedia.org/r/271546
Change subject: Restructure ChangeOpReferenceRemoveTest to reflect expected
behaviour
......................................................................
Restructure ChangeOpReferenceRemoveTest to reflect expected behaviour
Change-Id: I1055ee11754324f6b85d1023e0d9e035b30e7d3c
---
M repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
1 file changed, 19 insertions(+), 41 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/46/271546/1
diff --git
a/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
b/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
index 6e34bde..0ca6d59 100644
--- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
+++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
@@ -40,52 +40,30 @@
new ChangeOpReferenceRemove( $guid, $referenceHash );
}
- public function changeOpRemoveProvider() {
- $snak = new PropertyValueSnak( 2754236, new StringValue( 'test'
) );
- $args = array();
+ public function testApplyRemovesReference() {
+ $item = $this->newItemWithClaim( 'q345', new PropertyValueSnak(
2754236, new StringValue( 'test' ) ) );
+ $reference = new Reference( array( new PropertyValueSnak(
78462378, new StringValue( 'newQualifier' ) ) ) );
+ $statement = $item->getStatements()->toArray()[0];
+ $statement->getReferences()->addReference( $reference );
+ $changeOp = new ChangeOpReferenceRemove( $statement->getGuid(),
$reference->getHash() );
- $item = $this->newItemWithClaim( 'q345', $snak );
- $statements = $item->getStatements()->toArray();
- /** @var Statement $statement */
- $statement = reset( $statements );
- $guid = $statement->getGuid();
- $snaks = new SnakList();
- $snaks[] = new PropertyValueSnak( 78462378, new StringValue(
'newQualifier' ) );
- $newReference = new Reference( $snaks );
- $statement->getReferences()->addReference( $newReference );
- $referenceHash = $newReference->getHash();
- $changeOp = new ChangeOpReferenceRemove( $guid, $referenceHash
);
- $args[ 'Removing a single reference' ] = array( $item,
$changeOp, $referenceHash );
+ $changeOp->apply( $item );
- $item = $this->newItemWithClaim( 'q346', $snak );
- $statements = $item->getStatements()->toArray();
- /** @var Statement $statement */
- $statement = reset( $statements );
- $guid = $statement->getGuid();
- $snaks = new SnakList();
- $snaks[] = new PropertyValueSnak( 78462378, new StringValue(
'newQualifier' ) );
- $newReference = new Reference( $snaks );
- $references = $statement->getReferences();
- $references->addReference( $newReference );
- $references->addReference( $newReference );
- $referenceHash = $newReference->getHash();
- $changeOp = new ChangeOpReferenceRemove( $guid, $referenceHash
);
- $args[ 'Removing references that have the same hash' ] = array(
$item, $changeOp, $referenceHash );
-
- return $args;
+ $this->assertTrue( $statement->getReferences()->isEmpty() );
}
- /**
- * @dataProvider changeOpRemoveProvider
- */
- public function testApplyRemoveReference( Item $item,
ChangeOpReferenceRemove $changeOp, $referenceHash ) {
+ public function testApplyWithDuplicateReferencePreservesOne() {
+ $item = $this->newItemWithClaim( 'q345', new PropertyValueSnak(
2754236, new StringValue( 'test' ) ) );
+ $reference = new Reference( array( new PropertyValueSnak(
78462378, new StringValue( 'newQualifier' ) ) ) );
+ $statement = $item->getStatements()->toArray()[0];
+ $statement->getReferences()->addReference( clone $reference );
+ $statement->getReferences()->addReference( clone $reference );
+ $changeOp = new ChangeOpReferenceRemove( $statement->getGuid(),
$reference->getHash() );
+
$changeOp->apply( $item );
- $statements = $item->getStatements()->toArray();
- $this->assertCount( 1, $statements, 'More than one claim
returned on item...' );
- /** @var Statement $statement */
- $statement = reset( $statements );
- $references = $statement->getReferences();
- $this->assertFalse( $references->hasReferenceHash(
$referenceHash ), "Reference still exists" );
+
+ $this->assertTrue(
$statement->getReferences()->hasReferenceHash( $reference->getHash() ) );
+ $this->assertCount( 1, $statement->getReferences() );
}
private function newItemWithClaim( $itemIdString, $snak ) {
--
To view, visit https://gerrit.wikimedia.org/r/271546
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1055ee11754324f6b85d1023e0d9e035b30e7d3c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits