Jeroen De Dauw has submitted this change and it was merged. Change subject: Improve tests for ChangeOpReferenceRemove ......................................................................
Improve tests for ChangeOpReferenceRemove Change-Id: Id2485bf07d6d7b320a1906a626e9489cd3780b42 --- M repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php 1 file changed, 36 insertions(+), 1 deletion(-) Approvals: Addshore: Verified Jeroen De Dauw: Looks good to me, approved diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php b/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php index 2d73314..4a6b655 100644 --- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php +++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpReferenceRemoveTest.php @@ -3,6 +3,7 @@ namespace Wikibase\Test; use DataValues\StringValue; +use InvalidArgumentException; use Wikibase\ChangeOp\ChangeOpReferenceRemove; use Wikibase\DataModel\Claim\Claims; use Wikibase\DataModel\Claim\Statement; @@ -26,6 +27,22 @@ */ class ChangeOpReferenceRemoveTest extends \PHPUnit_Framework_TestCase { + public function invalidConstructorProvider() { + $args = array(); + $args[] = array( '', '' ); + $args[] = array( '', 'foo' ); + $args[] = array( 'foo', '' ); + return $args; + } + + /** + * @dataProvider invalidConstructorProvider + * @expectedException InvalidArgumentException + */ + public function testInvalidConstruct( $claimGuid, $referenceHash ) { + new ChangeOpReferenceRemove( $claimGuid, $referenceHash ); + } + public function changeOpRemoveProvider() { $snak = new PropertyValueSnak( 2754236, new StringValue( 'test' ) ); $args = array(); @@ -44,7 +61,24 @@ $item->setClaims( new Claims( $claims ) ); $referenceHash = $newReference->getHash(); $changeOp = new ChangeOpReferenceRemove( $claimGuid, $referenceHash ); - $args[] = array ( $item, $changeOp, $referenceHash ); + $args[ 'Removing a single reference' ] = array ( $item, $changeOp, $referenceHash ); + + $item = $this->provideNewItemWithClaim( 'q346', $snak ); + $claims = $item->getClaims(); + /** @var Statement $claim */ + $claim = reset( $claims ); + $claimGuid = $claim->getGuid(); + $snaks = new SnakList(); + $snaks[] = new PropertyValueSnak( 78462378, new StringValue( 'newQualifier' ) ); + $newReference = new Reference( $snaks ); + $references = $claim->getReferences(); + $references->addReference( $newReference ); + $references->addReference( $newReference ); + $claim->setReferences( $references ); + $item->setClaims( new Claims( $claims ) ); + $referenceHash = $newReference->getHash(); + $changeOp = new ChangeOpReferenceRemove( $claimGuid, $referenceHash ); + $args[ 'Removing references that have the same hash' ] = array ( $item, $changeOp, $referenceHash ); return $args; } @@ -59,6 +93,7 @@ public function testApplyRemoveReference( $item, $changeOp, $referenceHash ) { $this->assertTrue( $changeOp->apply( $item ), "Applying the ChangeOp did not return true" ); $claims = $item->getClaims(); + $this->assertCount( 1, $claims, 'More than one claim returned on item...' ); /** @var Statement $claim */ $claim = reset( $claims ); $references = $claim->getReferences(); -- To view, visit https://gerrit.wikimedia.org/r/108495 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id2485bf07d6d7b320a1906a626e9489cd3780b42 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: Jeroen De Dauw <jeroended...@gmail.com> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits