/**
  * {@inheritdoc}
  */
 public function reverse($latitude, $longitude)
 {
     if (null === $this->logger) {
         return parent::reverse($latitude, $longitude);
     }
     $startTime = microtime(true);
     $results = parent::reverse($latitude, $longitude);
     $duration = (microtime(true) - $startTime) * 1000;
     $value = sprintf('[Reverse geocoding] latitude: %s, longitude: %s', $latitude, $longitude);
     $this->logger->logRequest($value, $duration, $this->getProviderClass(), $results);
     return $results;
 }
 public function testLogRequestsWithoutLogger()
 {
     $geocoderLogger = new GeocoderLogger();
     $geocoderLogger->logRequest('copenhagen', 0.123, 'FooProvider', $this->results);
     $this->assertTrue(is_array($requests = $geocoderLogger->getRequests()));
     $this->assertCount(1, $requests);
     $this->assertTrue(is_array($request = $requests[0]));
     $this->assertSame($request['value'], 'copenhagen');
     $this->assertSame($request['duration'], 0.123);
     $this->assertSame($request['providerClass'], 'FooProvider');
     $this->assertSame($request['result'], '[{"latitude":1,"longitude":2,"bounds":{"south":1,"west":2,"north":3,"east":4},"streetNumber":"10","streetName":"rue Gambetta","postalCode":"75020","locality":"Paris","subLocality":null,"adminLevels":[],"country":"France","countryCode":"FR","timezone":null},{"latitude":3,"longitude":4,"bounds":{"south":5,"west":6,"north":7,"east":8},"streetNumber":"3","streetName":"avenue Secr\\u00e9tan","postalCode":"75019","locality":"Paris","subLocality":null,"adminLevels":[],"country":"France","countryCode":"FR","timezone":null}]');
 }
 /**
  * {@inheritdoc}
  */
 public function collect(Request $request, Response $response, \Exception $exception = null)
 {
     $this->data = array('requests' => null !== $this->logger ? $this->logger->getRequests() : array());
 }
 public function testLogRequestsWithoutLogger()
 {
     $geocoderLogger = new GeocoderLogger();
     $geocoderLogger->logRequest('copenhagen', 0.123, 'FooProvider', $this->result);
     $this->assertTrue(is_array($requests = $geocoderLogger->getRequests()));
     $this->assertCount(1, $requests);
     $this->assertTrue(is_array($request = $requests[0]));
     $this->assertSame($request['value'], 'copenhagen');
     $this->assertSame($request['duration'], 0.123);
     $this->assertSame($request['providerClass'], 'FooProvider');
     $this->assertSame($request['result'], '{"latitude":1,"longitude":2,"bounds":null,"streetNumber":null,"streetName":null,"zipcode":null,"city":null,"cityDistrict":null,"county":null,"countyCode":null,"region":null,"regionCode":null,"country":null,"countryCode":null,"timezone":null}');
 }