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()); }
/** * @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()); } }