jenkins-bot has submitted this change and it was merged.

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, 32 insertions(+), 44 deletions(-)

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



diff --git 
a/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php 
b/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
index 6e34bde..57643ae 100644
--- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
+++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php
@@ -9,6 +9,7 @@
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Reference;
 use Wikibase\DataModel\Snak\PropertyValueSnak;
+use Wikibase\DataModel\Snak\Snak;
 use Wikibase\DataModel\Snak\SnakList;
 use Wikibase\DataModel\Statement\Statement;
 
@@ -40,55 +41,42 @@
                new ChangeOpReferenceRemove( $guid, $referenceHash );
        }
 
-       public function changeOpRemoveProvider() {
-               $snak = new PropertyValueSnak( 2754236, new StringValue( 'test' 
) );
-               $args = array();
+       public function testApplyRemovesReference() {
+               $mainSnak = new PropertyValueSnak( 2754236, new StringValue( 
'test' ) );
+               $referenceSnak = new PropertyValueSnak( 78462378, new 
StringValue( 'newReference' ) );
+               $reference = new Reference( array( $referenceSnak ) );
 
-               $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 );
+               $item = $this->newItemWithClaim( 'q345', $mainSnak );
+               $statement = $item->getStatements()->toArray()[0];
+               $statement->getReferences()->addReference( $reference );
+               $changeOp = new ChangeOpReferenceRemove( $statement->getGuid(), 
$reference->getHash() );
 
-               $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;
-       }
-
-       /**
-        * @dataProvider changeOpRemoveProvider
-        */
-       public function testApplyRemoveReference( Item $item, 
ChangeOpReferenceRemove $changeOp, $referenceHash ) {
                $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" );
+
+               $newStatement = $item->getStatements()->toArray()[0];
+               $this->assertTrue( $newStatement->getReferences()->isEmpty() );
        }
 
-       private function newItemWithClaim( $itemIdString, $snak ) {
+       public function testApplyWithDuplicateReferencePreservesOne() {
+               $mainSnak = new PropertyValueSnak( 2754236, new StringValue( 
'test' ) );
+               $referenceSnak = new PropertyValueSnak( 78462378, new 
StringValue( 'newReference' ) );
+               $reference = new Reference( array( $referenceSnak ) );
+               $referenceHash = $reference->getHash();
+
+               $item = $this->newItemWithClaim( 'q345', $mainSnak );
+               $statement = $item->getStatements()->toArray()[0];
+               $statement->getReferences()->addReference( clone $reference );
+               $statement->getReferences()->addReference( clone $reference );
+               $changeOp = new ChangeOpReferenceRemove( $statement->getGuid(), 
$referenceHash );
+
+               $changeOp->apply( $item );
+
+               $newStatement = $item->getStatements()->toArray()[0];
+               $this->assertTrue( 
$newStatement->getReferences()->hasReferenceHash( $referenceHash ) );
+               $this->assertCount( 1, $newStatement->getReferences() );
+       }
+
+       private function newItemWithClaim( $itemIdString, Snak $snak ) {
                $item = new Item( new ItemId( $itemIdString ) );
 
                $item->getStatements()->addNewStatement(

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1055ee11754324f6b85d1023e0d9e035b30e7d3c
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (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