/**
  * @return ResultAdapter
  */
 public function newInstance()
 {
     $result = new ResultAdapter();
     $callback = array($this, 'createFromId');
     $result->setLoaderClosure(function ($geonameid) use($callback) {
         return call_user_func($callback, $geonameid);
     });
     return $result;
 }
 public function testFromArray()
 {
     $toponym = $this->toponymProvider();
     $toponym = $toponym[0][0];
     $adapter = new ResultAdapter();
     $adapter->fromArray(array('geonameid' => $toponym->getId(), 'toponym' => $toponym));
     $this->assertEquals($toponym->getName(), $adapter->getCity());
     $adapter = new ResultAdapter();
     $adapter->setLoaderClosure(function ($id) use($toponym) {
         return $id == $toponym->getId() ? $toponym : null;
     });
     $adapter->fromArray(array('geonameid' => $toponym->getId()));
     $this->assertEquals($toponym->getName(), $adapter->getCity());
 }