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

Reply via email to