/**
  * Checks the geocoded data method with a GeocoderRequest
  */
 public function testGeocodedDataWithGeocoderRequest()
 {
     $request = new GeocoderRequest();
     $request->setAddress('address');
     $response = self::$provider->getGeocodedData($request);
     $this->assertInstanceOf('ivory\\GoogleMapBundle\\Model\\Services\\Geocoding\\Result\\GeocoderResponse', $response);
 }
 /**
  * Generates geocoding URL API according to the request
  *
  * @param Ivory\GoogleMapBundle\Model\Services\Geocoding\GeocoderRequest $geocoderRequest
  * @return string
  */
 protected function generateUrl(GeocoderRequest $geocoderRequest)
 {
     $httpQuery = array();
     if ($geocoderRequest->hasAddress()) {
         $httpQuery['address'] = $geocoderRequest->getAddress();
     } else {
         $httpQuery['latlng'] = sprintf('%s,%s', $geocoderRequest->getCoordinate()->getLatitude(), $geocoderRequest->getCoordinate()->getLongitude());
     }
     if ($geocoderRequest->hasBound()) {
         $httpQuery['bound'] = sprintf('%s,%s|%s,%s', $geocoderRequest->getBound()->getSouthWest()->getLatitude(), $geocoderRequest->getBound()->getSouthWest()->getLongitude(), $geocoderRequest->getBound()->getNorthEast()->getLatitude(), $geocoderRequest->getBound()->getNorthEast()->getLongitude());
     }
     if ($geocoderRequest->hasRegion()) {
         $httpQuery['region'] = $geocoderRequest->getRegion();
     }
     if ($geocoderRequest->hasLanguage()) {
         $httpQuery['language'] = $geocoderRequest->getLanguage();
     }
     $httpQuery['sensor'] = $geocoderRequest->hasSensor() ? 'true' : 'false';
     return sprintf('%s/%s?%s', $this->getUrl(), $this->getFormat(), http_build_query($httpQuery));
 }