public function setUp() { $em = $this->getEntityManager(null, null, ['driver' => 'pdo_pgsql', 'dbname' => 'orm_behaviors_test']); $nantes = new \BehaviorFixtures\ORM\GeocodableEntity(47.218635, -1.544266); $nantes->setTitle('Nantes'); $paris = new \BehaviorFixtures\ORM\GeocodableEntity(48.858842, 2.355194); $paris->setTitle('Paris'); $newYork = new \BehaviorFixtures\ORM\GeocodableEntity(40.742786, -73.989272); $newYork->setTitle('New-York'); $em->persist($nantes); $em->persist($paris); $em->persist($newYork); $em->flush(); }
public function testFindByDistance() { $em = $this->getEntityManager(null, null, ['driver' => 'pdo_pgsql', 'dbname' => 'orm_behaviors_test']); $nantes = new \BehaviorFixtures\ORM\GeocodableEntity(47.218635, -1.544266); $nantes->setTitle('Nantes'); $paris = new \BehaviorFixtures\ORM\GeocodableEntity(48.858842, 2.355194); $paris->setTitle('Paris'); $newYork = new \BehaviorFixtures\ORM\GeocodableEntity(40.742786, -73.989272); $newYork->setTitle('New-York'); $em->persist($nantes); $em->persist($paris); $em->persist($newYork); $em->flush(); $repo = $em->getRepository('BehaviorFixtures\\ORM\\GeocodableEntity'); $cities = $repo->findByDistance(new Point(47.896319, 7.352943), 500); $this->assertCount(1, $cities, 'Paris is less than 500km far from Reguisheim'); $cities = $repo->findByDistance(new Point(47.896319, 7.352943), 900); $this->assertCount(2, $cities, 'Paris and Nantes are less than 900km far from Reguisheim'); $cities = $repo->findByDistance(new Point(47.896319, 7.352943), 9000); $this->assertCount(3, $cities, 'Paris, Nantes and New-York are less than 9000km far from Reguisheim'); }