/** * @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); }