Lucas Werkmeister (WMDE) has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/372133 )
Change subject: Add tests for StatementContext
......................................................................
Add tests for StatementContext
One test method per Context interface method. Most of them are trivial,
except for the test for storeCheckResultInArray, which stores several
check results. (The $expected value also serves as an example for the
StatementContext output format.)
Change-Id: I700999a9ca7885b5461f631336c7701d88284df4
---
A tests/phpunit/Context/StatementContextTest.php
1 file changed, 113 insertions(+), 0 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseQualityConstraints
refs/changes/33/372133/1
diff --git a/tests/phpunit/Context/StatementContextTest.php
b/tests/phpunit/Context/StatementContextTest.php
new file mode 100644
index 0000000..e82075f
--- /dev/null
+++ b/tests/phpunit/Context/StatementContextTest.php
@@ -0,0 +1,113 @@
+<?php
+
+namespace WikibaseQuality\ConstraintReport\Test\Context;
+
+use Wikibase\DataModel\Statement\Statement;
+use Wikibase\Repo\Tests\NewItem;
+use Wikibase\Repo\Tests\NewStatement;
+use WikibaseQuality\ConstraintReport\ConstraintCheck\Context\StatementContext;
+
+/**
+ * @covers
\WikibaseQuality\ConstraintReport\ConstraintCheck\Context\AbstractContext
+ * @covers
\WikibaseQuality\ConstraintReport\ConstraintCheck\Context\StatementContext
+ * @uses \Wikibase\DataModel\Statement\Statement
+ * @uses \Wikibase\Repo\Tests\NewItem
+ * @uses \Wikibase\Repo\Tests\NewStatement
+ *
+ * @group WikibaseQualityConstraints
+ *
+ * @author Lucas Werkmeister
+ * @license GNU GPL v2+
+ */
+class StatementContextTest extends \PHPUnit_Framework_TestCase {
+
+ public function testGetSnak() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement = NewStatement::noValueFor( 'P1' )->build();
+ $context = new StatementContext( $entity, $statement );
+
+ $this->assertSame( $statement->getMainSnak(),
$context->getSnak() );
+ }
+
+ public function testGetEntity() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement = NewStatement::noValueFor( 'P1' )->build();
+ $context = new StatementContext( $entity, $statement );
+
+ $this->assertSame( $entity, $context->getEntity() );
+ }
+
+ public function testGetType() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement = NewStatement::noValueFor( 'P1' )->build();
+ $context = new StatementContext( $entity, $statement );
+
+ $this->assertSame( 'statement', $context->getType() );
+ }
+
+ public function testGetSnakRank() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $rank = Statement::RANK_DEPRECATED;
+ $statement = NewStatement::noValueFor( 'P1' )
+ ->withRank( $rank )
+ ->build();
+ $context = new StatementContext( $entity, $statement );
+
+ $this->assertSame( $rank, $context->getSnakRank() );
+ }
+
+ public function testGetSnakStatement() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement = NewStatement::noValueFor( 'P1' )->build();
+ $context = new StatementContext( $entity, $statement );
+
+ $this->assertSame( $statement, $context->getSnakStatement() );
+ }
+
+ public function testStoreCheckResultInArray() {
+ $entity = NewItem::withId( 'Q1' )->build();
+ $statement1 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$13ea0742-0190-4d88-b7b0-baee67573818' )
+ ->build();
+ $statement2 = NewStatement::noValueFor( 'P1' )
+ ->withGuid( 'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' )
+ ->build();
+ $statement3 = NewStatement::noValueFor( 'P2' )
+ ->withGuid( 'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' )
+ ->build();
+ $context1 = new StatementContext( $entity, $statement1 );
+ $context2 = new StatementContext( $entity, $statement2 );
+ $context3 = new StatementContext( $entity, $statement3 );
+ $result1 = [ 'result1' ];
+ $result2 = [ 'status' => 'some status', 'result' => 'second
result' ];
+ $result3 = [ 3 ];
+ $result4 = [ [ 'the fourth result' ] ];
+
+ $actual = [];
+ $context1->storeCheckResultInArray( $result1, $actual );
+ $context2->storeCheckResultInArray( $result2, $actual );
+ $context3->storeCheckResultInArray( $result3, $actual );
+ $context3->storeCheckResultInArray( $result4, $actual );
+
+ $expected = [
+ 'Q1' => [
+ 'P1' => [
+
'P1$13ea0742-0190-4d88-b7b0-baee67573818' => [
+ $result1,
+ ],
+
'P1$9fbfae7f-6f21-4967-8e2c-ec04ca16873d' => [
+ $result2,
+ ],
+ ],
+ 'P2' => [
+
'P2$4638ca58-5128-4a1f-88a9-b379fe9f8ad9' => [
+ $result3,
+ $result4,
+ ],
+ ],
+ ],
+ ];
+ $this->assertSame( $expected, $actual );
+ }
+
+}
--
To view, visit https://gerrit.wikimedia.org/r/372133
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I700999a9ca7885b5461f631336c7701d88284df4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits