/**
  * @dataProvider getDataForAttributeExistingVisitTests
  */
 public function test_attributeExistingVisit_CorrectlySetsLocationProperties_AndReturnsCorrectResult($mockLocation, $expectedVisitProperties, $visitProperties = array(), $expectedUpdateValues = null)
 {
     $mockLocationProvider = $this->getProviderMockThatGeolocates($mockLocation);
     $visit = $this->insertVisit($visitProperties);
     $this->insertTwoConversions($visit);
     $geolocator = new VisitorGeolocator($mockLocationProvider);
     $valuesUpdated = $geolocator->attributeExistingVisit($visit, $useCache = false);
     $this->assertEquals($expectedVisitProperties, $this->logInserter->getVisit($visit['idvisit']), $message = '', $delta = 0.001);
     $expectedUpdateValues = $expectedUpdateValues === null ? $expectedVisitProperties : $expectedUpdateValues;
     $this->assertEquals($expectedUpdateValues, $valuesUpdated, $message = '', $delta = 0.001);
     $conversions = $this->getConversions($visit);
     $this->assertEquals(array($expectedVisitProperties, $expectedVisitProperties), $conversions, $message = '', $delta = 0.001);
 }