public function testCheckQueryEntitiesOptions()
 {
     $options = new QueryEntitiesOptions();
     $query = new Query();
     $nextPartitionKey = 'aaa';
     $nextRowKey = 'bbb';
     $this->assertNull($options->getNextPartitionKey(), 'Default QueryEntitiesOptions->getNextPartitionKey');
     $this->assertNull($options->getNextRowKey(), 'Default QueryEntitiesOptions->getNextRowKey');
     $this->assertNotNull($options->getQuery(), 'Default QueryEntitiesOptions->getQuery');
     $options->setNextPartitionKey($nextPartitionKey);
     $options->setNextRowKey($nextRowKey);
     $options->setQuery($query);
     $this->assertEquals($nextPartitionKey, $options->getNextPartitionKey(), 'Set QueryEntitiesOptions->getNextPartitionKey');
     $this->assertEquals($nextRowKey, $options->getNextRowKey(), 'Set QueryEntitiesOptions->getNextRowKey');
     $this->assertEquals($query, $options->getQuery(), 'Set QueryEntitiesOptions->getQuery');
     $options->addSelectField('bar');
     $options->addSelectField('baz');
     $this->assertNotNull($options->getSelectFields(), 'Add $options->getSelectFields');
     $this->assertNotNull($options->getQuery()->getSelectFields(), 'Add $options->getQuery->getSelectFields');
     $this->assertEquals(2, count($options->getSelectFields()), 'Add $options->getSelectFields->size');
     $this->assertEquals(2, count($options->getQuery()->getSelectFields()), 'Add $options->getQuery->getSelectFields->size');
     $filter = Filter::applyConstant('foo', EdmType::STRING);
     $options->setFilter($filter);
     $options->setSelectFields(null);
     $options->setTop(TableServiceFunctionalTestData::IntegerMAX_VALUE);
     $this->assertEquals($filter, $options->getFilter(), 'Set $options->getFilter');
     $this->assertEquals($filter, $options->getQuery()->getFilter(), 'Set $options->getQuery->getFilter');
     $this->assertNull($options->getSelectFields(), 'Set $options->getSelectFields');
     $this->assertNull($options->getQuery()->getSelectFields(), 'Set $options->getQuery->getSelectFields');
     $this->assertEquals(TableServiceFunctionalTestData::IntegerMAX_VALUE, $options->getTop(), 'Set $options->getTop');
     $this->assertEquals(TableServiceFunctionalTestData::IntegerMAX_VALUE, $options->getQuery()->getTop(), 'Set $options->getQuery->getTop');
 }
 /**
  * @covers WindowsAzure\Table\Models\QueryEntitiesOptions::setTop
  * @covers WindowsAzure\Table\Models\QueryEntitiesOptions::getTop
  */
 public function testSetTop()
 {
     // Setup
     $options = new QueryEntitiesOptions();
     $expected = 123;
     // Test
     $options->setTop($expected);
     // Assert
     $this->assertEquals($expected, $options->getTop());
 }
Esempio n. 3
0
 /**
  * @param        $table
  * @param string $parsed_filter
  * @param string $fields
  * @param array  $extras
  * @param bool   $parse_results
  *
  * @throws \Exception
  * @return array
  */
 protected function queryEntities($table, $parsed_filter = '', $fields = null, $extras = [], $parse_results = false)
 {
     $options = new QueryEntitiesOptions();
     $options->setSelectFields([]);
     if (!empty($fields) && ApiOptions::FIELDS_ALL != $fields) {
         if (!is_array($fields)) {
             $fields = array_map('trim', explode(',', trim($fields, ',')));
         }
         $options->setSelectFields($fields);
     }
     $limit = intval(ArrayUtils::get($extras, ApiOptions::LIMIT, 0));
     if ($limit > 0) {
         $options->setTop($limit);
     }
     if (!empty($parsed_filter)) {
         $query = new QueryStringFilter($parsed_filter);
         $options->setFilter($query);
     }
     try {
         /** @var QueryEntitiesResult $result */
         $result = $this->parent->getConnection()->queryEntities($table, $options);
         /** @var Entity[] $entities */
         $entities = $result->getEntities();
         if ($parse_results) {
             return static::parseEntitiesToRecords($entities);
         }
         return $entities;
     } catch (ServiceException $ex) {
         throw new InternalServerErrorException("Failed to filter items from '{$table}' on Windows Azure Tables service.\n" . $ex->getMessage());
     }
 }