/**
  * @since  2.2
  *
  * @param QueryTestCaseInterpreter $queryTestCaseInterpreter
  */
 public function processQueryCase(QueryTestCaseInterpreter $queryTestCaseInterpreter)
 {
     if (!$queryTestCaseInterpreter->hasCondition()) {
         $this->markTestSkipped('Found no condition for ' . $queryTestCaseInterpreter->isAbout());
     }
     $description = $this->queryParser->getQueryDescription($queryTestCaseInterpreter->getCondition());
     $this->printDescriptionToOutput($queryTestCaseInterpreter->isAbout(), $description);
     $query = new Query($description, false, false);
     $query->querymode = $queryTestCaseInterpreter->getQueryMode();
     $query->setLimit($queryTestCaseInterpreter->getLimit());
     $query->setOffset($queryTestCaseInterpreter->getOffset());
     $query->setExtraPrintouts($queryTestCaseInterpreter->getExtraPrintouts());
     $query->setSortKeys($queryTestCaseInterpreter->getSortKeys());
     $query->setContextPage($queryTestCaseInterpreter->getSubject());
     if ($queryTestCaseInterpreter->isRequiredToClearStoreCache()) {
         $this->getStore()->clear();
     }
     $queryResult = $this->getStore()->getQueryResult($query);
     $this->printQueryResultToOutput($queryResult);
     if (is_string($queryResult)) {
         return;
     }
     $this->assertEquals($queryTestCaseInterpreter->getExpectedCount(), $queryResult->getCount(), 'Failed asserting query result count on ' . $queryTestCaseInterpreter->isAbout());
     $this->assertCount($queryTestCaseInterpreter->getExpectedErrorCount(), $queryResult->getErrors(), 'Failed asserting error count ' . $queryTestCaseInterpreter->isAbout());
     if ($queryTestCaseInterpreter->getExpectedErrorCount() > 0) {
         return null;
     }
     if ($queryTestCaseInterpreter->isFromCache() !== null) {
         $this->assertEquals($queryTestCaseInterpreter->isFromCache(), $queryResult->isFromCache(), 'Failed asserting isFromCache for ' . $queryTestCaseInterpreter->isAbout());
     }
     $this->queryResultValidator->assertThatQueryResultHasSubjects($queryTestCaseInterpreter->getExpectedSubjects(), $queryResult, $queryTestCaseInterpreter->isAbout());
     $this->queryResultValidator->assertThatDataItemIsSet($queryTestCaseInterpreter->getExpectedDataItems(), $queryResult, $queryTestCaseInterpreter->isAbout());
     $this->queryResultValidator->assertThatDataValueIsSet($queryTestCaseInterpreter->getExpectedDataValues(), $queryResult, $queryTestCaseInterpreter->isAbout());
 }