/** * @test */ public function it_returns_coordinates() { $address = 'Wetstraat 1, 1000 Brussel, BE'; $latFloat = 1.07845; $longFloat = 2.76412; $coordinatesArray = ['latitude' => $latFloat, 'longitude' => $longFloat]; $result = new Geocoded(); $result->fromArray($coordinatesArray); $this->geocoder->expects($this->once())->method('geocode')->with($address)->willReturn($result); $expectedCoordinates = new Coordinates(new Latitude($latFloat), new Longitude($longFloat)); $actualCoordinates = $this->service->getCoordinates($address); $this->assertEquals($expectedCoordinates, $actualCoordinates); }
/** * @param string $address * @return Coordinates */ public function getCoordinates($address) { $result = $this->geocoder->geocode($address); $coordinates = $result->getCoordinates(); return new Coordinates(new Latitude((double) $coordinates[0]), new Longitude((double) $coordinates[1])); }