Mailing List Archive

[MediaWiki-commits] [Gerrit] mediawiki...WikibaseQualityConstraints[master]: Add tests for ItemIdSnakValue
Lucas Werkmeister (WMDE) has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/406041 )

Change subject: Add tests for ItemIdSnakValue
......................................................................

Add tests for ItemIdSnakValue

Change-Id: Ic3e84dfe44983a80499049472e3b62047223f7c9
---
M src/ConstraintCheck/ItemIdSnakValue.php
A tests/phpunit/ItemIdSnakValueTest.php
2 files changed, 166 insertions(+), 0 deletions(-)


git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseQualityConstraints refs/changes/41/406041/1

diff --git a/src/ConstraintCheck/ItemIdSnakValue.php b/src/ConstraintCheck/ItemIdSnakValue.php
index 977dbb1..706e27f 100644
--- a/src/ConstraintCheck/ItemIdSnakValue.php
+++ b/src/ConstraintCheck/ItemIdSnakValue.php
@@ -130,6 +130,7 @@
* Get the item ID contained in this {@link ItemIdSnakValue}.
* Only valid if {@link isValue} is true.
*
+ * @throws DomainException if this value does not contain an item ID
* @return ItemId
*/
public function getItemId() {
diff --git a/tests/phpunit/ItemIdSnakValueTest.php b/tests/phpunit/ItemIdSnakValueTest.php
new file mode 100644
index 0000000..fda55a1
--- /dev/null
+++ b/tests/phpunit/ItemIdSnakValueTest.php
@@ -0,0 +1,165 @@
+<?php
+
+namespace WikibaseQuality\ConstraintReport\Tests\ConstraintChecker;
+
+use DataValues\StringValue;
+use DomainException;
+use InvalidArgumentException;
+use Wikibase\DataModel\Entity\EntityIdValue;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Snak\PropertySomeValueSnak;
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use WikibaseQuality\ConstraintReport\ConstraintCheck\ItemIdSnakValue;
+
+/**
+ * @covers WikibaseQuality\ConstraintReport\ConstraintCheck\ItemIdSnakValue
+ *
+ * @group WikibaseQualityConstraints
+ *
+ * @author Lucas Werkmeister
+ * @license GNU GPL v2+
+ */
+class ItemIdSnakValueTest extends \PHPUnit_Framework_TestCase {
+
+ public function testFromItemId() {
+ $itemId = new ItemId( 'Q1' );
+
+ $value = ItemIdSnakValue::fromItemId( $itemId );
+
+ $this->assertTrue( $value->isValue() );
+ $this->assertFalse( $value->isSomeValue() );
+ $this->assertFalse( $value->isNoValue() );
+ $this->assertSame( $itemId, $value->getItemId() );
+ }
+
+ public function testSomeValue() {
+ $value = ItemIdSnakValue::someValue();
+
+ $this->assertFalse( $value->isValue() );
+ $this->assertTrue( $value->isSomeValue() );
+ $this->assertFalse( $value->isNoValue() );
+
+ $this->setExpectedException( DomainException::class );
+ $value->getItemId();
+ }
+
+ public function testNoValue() {
+ $value = ItemIdSnakValue::noValue();
+
+ $this->assertFalse( $value->isValue() );
+ $this->assertFalse( $value->isSomeValue() );
+ $this->assertTrue( $value->isNoValue() );
+
+ $this->setExpectedException( DomainException::class );
+ $value->getItemId();
+ }
+
+ public function testFromSnak_ItemId() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $itemId )
+ );
+
+ $value = ItemIdSnakValue::fromSnak( $snak );
+
+ $this->assertTrue( $value->isValue() );
+ $this->assertSame( $itemId, $value->getItemId() );
+ }
+
+ public function testFromSnak_PropertyId() {
+ $propertyId = new PropertyId( 'P1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $propertyId )
+ );
+
+ $this->setExpectedException( InvalidArgumentException::class );
+ $value = ItemIdSnakValue::fromSnak( $snak );
+ }
+
+ public function testFromSnak_String() {
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new StringValue( 'Q1' )
+ );
+
+ $this->setExpectedException( InvalidArgumentException::class );
+ $value = ItemIdSnakValue::fromSnak( $snak );
+ }
+
+ public function testFromSnak_SomeValue() {
+ $snak = new PropertySomeValueSnak( new PropertyId( 'P100' ) );
+
+ $value = ItemIdSnakValue::fromSnak( $snak );
+
+ $this->assertTrue( $value->isSomeValue() );
+ }
+
+ public function testFromSnak_NoValue() {
+ $snak = new PropertyNoValueSnak( new PropertyId( 'P100' ) );
+
+ $value = ItemIdSnakValue::fromSnak( $snak );
+
+ $this->assertTrue( $value->isNoValue() );
+ }
+
+ public function testMatchesSnak_ItemId() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $itemId )
+ );
+
+ $this->assertTrue( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_PropertyId() {
+ $itemId = new ItemId( 'Q1' );
+ $propertyId = new PropertyId( 'P1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $propertyId )
+ );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_String() {
+ $itemId = new ItemId( 'Q1' );
+ $propertyId = new PropertyId( 'P1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new StringValue( 'Q1' )
+ );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_SomeValue() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertySomeValueSnak( new PropertyId( 'P100' ) );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertTrue( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_NoValue() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertyNoValueSnak( new PropertyId( 'P100' ) );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertTrue( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic3e84dfe44983a80499049472e3b62047223f7c9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <lucas.werkmeister@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
[MediaWiki-commits] [Gerrit] mediawiki...WikibaseQualityConstraints[master]: Add tests for ItemIdSnakValue [ In reply to ]
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/406041 )

Change subject: Add tests for ItemIdSnakValue
......................................................................


Add tests for ItemIdSnakValue

Change-Id: Ic3e84dfe44983a80499049472e3b62047223f7c9
---
M src/ConstraintCheck/ItemIdSnakValue.php
A tests/phpunit/ItemIdSnakValueTest.php
2 files changed, 166 insertions(+), 0 deletions(-)

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



diff --git a/src/ConstraintCheck/ItemIdSnakValue.php b/src/ConstraintCheck/ItemIdSnakValue.php
index 977dbb1..706e27f 100644
--- a/src/ConstraintCheck/ItemIdSnakValue.php
+++ b/src/ConstraintCheck/ItemIdSnakValue.php
@@ -130,6 +130,7 @@
* Get the item ID contained in this {@link ItemIdSnakValue}.
* Only valid if {@link isValue} is true.
*
+ * @throws DomainException if this value does not contain an item ID
* @return ItemId
*/
public function getItemId() {
diff --git a/tests/phpunit/ItemIdSnakValueTest.php b/tests/phpunit/ItemIdSnakValueTest.php
new file mode 100644
index 0000000..fda55a1
--- /dev/null
+++ b/tests/phpunit/ItemIdSnakValueTest.php
@@ -0,0 +1,165 @@
+<?php
+
+namespace WikibaseQuality\ConstraintReport\Tests\ConstraintChecker;
+
+use DataValues\StringValue;
+use DomainException;
+use InvalidArgumentException;
+use Wikibase\DataModel\Entity\EntityIdValue;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Snak\PropertySomeValueSnak;
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use WikibaseQuality\ConstraintReport\ConstraintCheck\ItemIdSnakValue;
+
+/**
+ * @covers WikibaseQuality\ConstraintReport\ConstraintCheck\ItemIdSnakValue
+ *
+ * @group WikibaseQualityConstraints
+ *
+ * @author Lucas Werkmeister
+ * @license GNU GPL v2+
+ */
+class ItemIdSnakValueTest extends \PHPUnit_Framework_TestCase {
+
+ public function testFromItemId() {
+ $itemId = new ItemId( 'Q1' );
+
+ $value = ItemIdSnakValue::fromItemId( $itemId );
+
+ $this->assertTrue( $value->isValue() );
+ $this->assertFalse( $value->isSomeValue() );
+ $this->assertFalse( $value->isNoValue() );
+ $this->assertSame( $itemId, $value->getItemId() );
+ }
+
+ public function testSomeValue() {
+ $value = ItemIdSnakValue::someValue();
+
+ $this->assertFalse( $value->isValue() );
+ $this->assertTrue( $value->isSomeValue() );
+ $this->assertFalse( $value->isNoValue() );
+
+ $this->setExpectedException( DomainException::class );
+ $value->getItemId();
+ }
+
+ public function testNoValue() {
+ $value = ItemIdSnakValue::noValue();
+
+ $this->assertFalse( $value->isValue() );
+ $this->assertFalse( $value->isSomeValue() );
+ $this->assertTrue( $value->isNoValue() );
+
+ $this->setExpectedException( DomainException::class );
+ $value->getItemId();
+ }
+
+ public function testFromSnak_ItemId() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $itemId )
+ );
+
+ $value = ItemIdSnakValue::fromSnak( $snak );
+
+ $this->assertTrue( $value->isValue() );
+ $this->assertSame( $itemId, $value->getItemId() );
+ }
+
+ public function testFromSnak_PropertyId() {
+ $propertyId = new PropertyId( 'P1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $propertyId )
+ );
+
+ $this->setExpectedException( InvalidArgumentException::class );
+ $value = ItemIdSnakValue::fromSnak( $snak );
+ }
+
+ public function testFromSnak_String() {
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new StringValue( 'Q1' )
+ );
+
+ $this->setExpectedException( InvalidArgumentException::class );
+ $value = ItemIdSnakValue::fromSnak( $snak );
+ }
+
+ public function testFromSnak_SomeValue() {
+ $snak = new PropertySomeValueSnak( new PropertyId( 'P100' ) );
+
+ $value = ItemIdSnakValue::fromSnak( $snak );
+
+ $this->assertTrue( $value->isSomeValue() );
+ }
+
+ public function testFromSnak_NoValue() {
+ $snak = new PropertyNoValueSnak( new PropertyId( 'P100' ) );
+
+ $value = ItemIdSnakValue::fromSnak( $snak );
+
+ $this->assertTrue( $value->isNoValue() );
+ }
+
+ public function testMatchesSnak_ItemId() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $itemId )
+ );
+
+ $this->assertTrue( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_PropertyId() {
+ $itemId = new ItemId( 'Q1' );
+ $propertyId = new PropertyId( 'P1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new EntityIdValue( $propertyId )
+ );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_String() {
+ $itemId = new ItemId( 'Q1' );
+ $propertyId = new PropertyId( 'P1' );
+ $snak = new PropertyValueSnak(
+ new PropertyId( 'P100' ),
+ new StringValue( 'Q1' )
+ );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_SomeValue() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertySomeValueSnak( new PropertyId( 'P100' ) );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertTrue( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+ public function testMatchesSnak_NoValue() {
+ $itemId = new ItemId( 'Q1' );
+ $snak = new PropertyNoValueSnak( new PropertyId( 'P100' ) );
+
+ $this->assertFalse( ItemIdSnakValue::fromItemId( $itemId )->matchesSnak( $snak ) );
+ $this->assertFalse( ItemIdSnakValue::someValue()->matchesSnak( $snak ) );
+ $this->assertTrue( ItemIdSnakValue::noValue()->matchesSnak( $snak ) );
+ }
+
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic3e84dfe44983a80499049472e3b62047223f7c9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <lucas.werkmeister@wikimedia.de>
Gerrit-Reviewer: Thiemo Kreuz (WMDE) <thiemo.kreuz@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits