Jeroen De Dauw has uploaded a new change for review. https://gerrit.wikimedia.org/r/75150
Change subject: DO NOT MERGE ...................................................................... DO NOT MERGE Change-Id: I462acad5acce0ee6b4af0019ecc5dd9b3040cce5 --- M Tests/Integration/Wikibase/Query/ObjectConstructionTest.php M Tests/Phpunit/Wikibase/Query/QueryEntityTest.php M Tests/System/Wikibase/Query/EntitiesByPropertyValueApiTest.php M phpunit.xml.dist M src/Wikibase/Query/QueryEntity.php 5 files changed, 54 insertions(+), 16 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseQuery refs/changes/50/75150/1 diff --git a/Tests/Integration/Wikibase/Query/ObjectConstructionTest.php b/Tests/Integration/Wikibase/Query/ObjectConstructionTest.php index d76fb77..f6223ea 100644 --- a/Tests/Integration/Wikibase/Query/ObjectConstructionTest.php +++ b/Tests/Integration/Wikibase/Query/ObjectConstructionTest.php @@ -8,6 +8,7 @@ * @file * @ingroup WikibaseQuery * @group WikibaseQuery + * @group WikibaseQueryIntegration * * @licence GNU GPL v2+ * @author Jeroen De Dauw < [email protected] > diff --git a/Tests/Phpunit/Wikibase/Query/QueryEntityTest.php b/Tests/Phpunit/Wikibase/Query/QueryEntityTest.php index ae78f89..285f1da 100644 --- a/Tests/Phpunit/Wikibase/Query/QueryEntityTest.php +++ b/Tests/Phpunit/Wikibase/Query/QueryEntityTest.php @@ -47,20 +47,57 @@ } public function testSetQueryDefinition() { - $query = QueryEntity::newEmpty(); + $queryEntity = QueryEntity::newEmpty(); - $queryDefinition = new Query( + $query = $this->newQuery(); + + $queryEntity->setQuery( $query ); + + $obtainedQuery = $queryEntity->getQuery(); + + $this->assertInstanceOf( 'Ask\Language\Query', $obtainedQuery ); + $this->assertEquals( $query, $obtainedQuery ); + } + + protected function newQuery() { + return new Query( new AnyValue(), array(), new QueryOptions( 1, 0 ) ); + } - $query->setQuery( $queryDefinition ); + public function testGetQueryWhenNotSetThrowsException() { + $this->setExpectedException( 'RuntimeException' ); + QueryEntity::newEmpty()->getQuery(); + } - $obtainedDefinition = $query->getQuery(); + public function testStubDoesNotMessThingsUp() { + $queryEntity = QueryEntity::newEmpty(); - $this->assertInstanceOf( 'Ask\Language\Query', $obtainedDefinition ); - $this->assertEquals( $queryDefinition, $obtainedDefinition ); + $query = $this->newQuery(); + + $queryEntity->setQuery( $query ); + + $queryEntity->stub(); + $obtainedQuery = $queryEntity->getQuery(); + + $this->assertInstanceOf( 'Ask\Language\Query', $obtainedQuery ); + $this->assertEquals( $query, $obtainedQuery ); + } + + public function testArraySerlialzationRoundtripWithQuery() { + $queryEntity = QueryEntity::newEmpty(); + + $query = $this->newQuery(); + + $queryEntity->setQuery( $query ); + + $serialization = $queryEntity->toArray(); + + $newQueryEntity = $queryEntity::newFromArray( $serialization ); + + $this->assertEquals( $queryEntity, $newQueryEntity ); } } diff --git a/Tests/System/Wikibase/Query/EntitiesByPropertyValueApiTest.php b/Tests/System/Wikibase/Query/EntitiesByPropertyValueApiTest.php index fb98c80..2733de9 100644 --- a/Tests/System/Wikibase/Query/EntitiesByPropertyValueApiTest.php +++ b/Tests/System/Wikibase/Query/EntitiesByPropertyValueApiTest.php @@ -15,6 +15,7 @@ * @file * @ingroup WikibaseQuery * @group WikibaseQuery + * @group WikibaseQuerySystem * @group Database * @group large * diff --git a/phpunit.xml.dist b/phpunit.xml.dist index bede6f1..3506213 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -13,9 +13,13 @@ strict="true" verbose="true"> <testsuites> - <testsuite name="WikibaseQuery"> + <testsuite name="WikibaseQueryUnit"> <directory>Tests/Phpunit</directory> + </testsuite> + <testsuite name="WikibaseQueryIntegration"> <directory>Tests/Integration</directory> + </testsuite> + <testsuite name="WikibaseQuerySystem"> <directory>Tests/System</directory> </testsuite> </testsuites> diff --git a/src/Wikibase/Query/QueryEntity.php b/src/Wikibase/Query/QueryEntity.php index 3f7c831..e83e3dd 100644 --- a/src/Wikibase/Query/QueryEntity.php +++ b/src/Wikibase/Query/QueryEntity.php @@ -4,6 +4,7 @@ use Ask\Language\Query; use MWException; +use RuntimeException; use Wikibase\Entity; /** @@ -50,18 +51,12 @@ * @since 0.1 * * @return Query - * @throws MWException + * @throws RuntimeException */ public function getQuery() { - if ( $this->queryDefinition === null ) { - if ( array_key_exists( 'querydefinition', $this->data ) ) { - // TODO - } - else { - throw new MWException( 'The Query of the query is not known' ); - } + if( $this->queryDefinition === null ){ + throw new RuntimeException( 'No query definition set' ); } - return $this->queryDefinition; } -- To view, visit https://gerrit.wikimedia.org/r/75150 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I462acad5acce0ee6b4af0019ecc5dd9b3040cce5 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/WikibaseQuery Gerrit-Branch: master Gerrit-Owner: Jeroen De Dauw <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
