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) <lucas.werkmeis...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits