/** * GeocoderBehaviorTest::testSetDistanceAsVirtualFieldInMiles() * * @return void */ public function testSetDistanceAsVirtualFieldInMiles() { $driver = $this->db->driver(); $this->skipIf(!($driver instanceof Mysql || $driver instanceof Postgres), 'The virtualFields test is only compatible with Mysql/Postgres.'); $this->Addresses->removeBehavior('Geocoder'); //FIXME: Shouldnt be necessary ideally $this->Addresses->addBehavior('Geocoder', ['unit' => Calculator::UNIT_MILES]); $options = ['lat' => 13.3, 'lng' => 19.2]; //$options = array('order' => array('Address.distance' => 'ASC')); $res = $this->Addresses->find()->find('distance', $options)->toArray(); $this->assertTrue($res[0]['distance'] < $res[1]['distance']); $this->assertTrue($res[1]['distance'] < $res[2]['distance']); $this->assertTrue($res[0]['distance'] > 390 && $res[0]['distance'] < 410); }
/** * @return void */ public function testRecursive() { $result = $this->Addresses->find()->contain([$this->Users->alias(), $this->Comments->alias()])->first(); $hashid = 'jR'; $this->assertSame($hashid, $result->id); $this->assertSame(1, $result->comments[0]->id); $this->assertSame(1, $result->user->id); $this->Addresses->behaviors()->Hashid->config('recursive', true); $result = $this->Addresses->find()->contain([$this->Users->alias(), $this->Comments->alias()])->first(); $hashid = 'jR'; $this->assertSame($hashid, $result->id); $this->assertSame($hashid, $result->comments[0]->id); $this->assertSame($hashid, $result->user->id); }