public function testTimezoneRequestIsValid()
 {
     $location = array('lat' => 45.340488, 'lng' => -75.912674);
     $timestamp = time();
     $language = 'en';
     $key = 'mock_crypto_key';
     $request = new TimezoneRequest($location, $timestamp, $key, $language);
     $this->assertEquals($location, $request->getLocation());
     $this->assertEquals($timestamp, $request->getTimestamp());
     $this->assertEquals($key, $request->getKey());
     $this->assertEquals($language, $request->getLanguage());
     $data = $request->toArray();
     $this->assertArrayHasKey('location', $data);
     $this->assertEquals(implode(',', $location), $data['location']);
     $this->assertArrayHasKey('timestamp', $data);
     $this->assertEquals($timestamp, $data['timestamp']);
     $this->assertArrayHasKey('language', $data);
     $this->assertEquals($language, $data['language']);
     $this->assertArrayHasKey('key', $data);
     $this->assertEquals($key, $data['key']);
 }
 /**
  * Generate the API url containing the required query params
  *
  * @param TimezoneRequest $request
  * @return string
  */
 protected function generateUrl(TimezoneRequest $request)
 {
     $url = sprintf('%s/%s?%s', $this->getUrl(), $this->getFormat(), http_build_query($request->toArray()));
     return $this->signUrl($url);
 }