public function test1()
 {
     $param = new ByTimeParams();
     $param->setDimensions(['12', '13'])->setLimit(10);
     $expected = ['dimensions' => '12,13', 'limit' => 10];
     $this->assertEquals($expected, $param->toArray());
 }
 /**
  * Get data by time
  *
  * @see http://api.yandex.ru/metrika/doc/beta/api_v1/bytime.xml
  *
  * @param Models\ByTimeParams $params
  * @return Models\ByTimeData
  */
 public function getByTime(Models\ByTimeParams $params)
 {
     $resource = 'bytime';
     $response = $this->sendGetRequest($resource, $params->toArray());
     $dataResponse = new Models\ByTimeData($response);
     return $dataResponse;
 }
 public function testGenerateRequest()
 {
     $id = 123;
     $limit = 100;
     $dimensions = ['dimension1', 'deimension2'];
     $sort = 'sort';
     $filter = 'a<b';
     $byTimeParams = new Models\ByTimeParams();
     $byTimeParams->setId($id)->setLimit($limit)->setDimensions($dimensions)->setSort($sort)->setFilters($filter)->setMetrics(null);
     $client = new DataClient();
     $url = $client->getServiceUrl('bytime', $byTimeParams->toArray());
     $expectedUrl = 'https://api-metrika.yandex.ru/stat/v1/data/bytime.json?oauth_token=&id=' . $id . '&dimensions=' . urlencode(implode(',', $dimensions)) . '&sort=' . $sort . '&limit=' . $limit . '&filters=' . urlencode($filter);
     $this->assertEquals($expectedUrl, $url);
 }
 public function testGet()
 {
     $fixtures = Stat::$byTimeParamsFixtures;
     $byTimeParams = new Models\ByTimeParams();
     $byTimeParams->setId($fixtures['id'])->setPreset($fixtures['preset'])->setDimensions($fixtures['dimensions'])->setMetrics($fixtures['metrics'])->setSort($fixtures['sort'])->setLimit($fixtures['limit'])->setOffset($fixtures['offset'])->setDate1($fixtures['date1'])->setDate2($fixtures['date2'])->setFilters($fixtures['filters'])->setAccuracy($fixtures['accuracy'])->setCallback($fixtures['callback'])->setIncludeUndefined($fixtures['include_undefined'])->setLang($fixtures['lang'])->setPretty($fixtures['pretty'])->setGroup($fixtures['group'])->setRowIds($fixtures['row_ids'])->setTopKeys($fixtures['top_keys']);
     $this->assertEquals($fixtures['id'], $byTimeParams->getId());
     $this->assertEquals($fixtures['preset'], $byTimeParams->getPreset());
     $this->assertEquals($fixtures['dimensions'], $byTimeParams->getDimensions());
     $this->assertEquals($fixtures['metrics'], $byTimeParams->getMetrics());
     $this->assertEquals($fixtures['sort'], $byTimeParams->getSort());
     $this->assertEquals($fixtures['limit'], $byTimeParams->getLimit());
     $this->assertEquals($fixtures['offset'], $byTimeParams->getOffset());
     $this->assertEquals($fixtures['date1'], $byTimeParams->getDate1());
     $this->assertEquals($fixtures['date2'], $byTimeParams->getDate2());
     $this->assertEquals($fixtures['filters'], $byTimeParams->getFilters());
     $this->assertEquals($fixtures['accuracy'], $byTimeParams->getAccuracy());
     $this->assertEquals($fixtures['callback'], $byTimeParams->getCallback());
     $this->assertEquals($fixtures['include_undefined'], $byTimeParams->getIncludeUndefined());
     $this->assertEquals($fixtures['lang'], $byTimeParams->getLang());
     $this->assertEquals($fixtures['pretty'], $byTimeParams->getPretty());
     $this->assertEquals($fixtures['group'], $byTimeParams->getGroup());
     $this->assertEquals($fixtures['row_ids'], $byTimeParams->getRowIds());
     $this->assertEquals($fixtures['top_keys'], $byTimeParams->getTopKeys());
 }