public function testGettersCache()
 {
     $modelClosures = new ModelClosure();
     $modelClosures->getFromModel();
     $modelClosures->setToModel();
     self::assertInstanceOf('\\Closure', $modelClosures->getFromModel());
     self::assertInstanceOf('\\Closure', $modelClosures->setToModel());
 }
 /**
  * @param array $data
  * @param mixed $model
  * @param string $mapType
  *
  * @throws ParseException
  */
 public function fillModel(array $data, $model, $mapType = 'dto')
 {
     $class = get_class($model);
     $map = $this->mapsManager->getMap($class, $mapType);
     $typeConverter = $this->getConverter();
     $setModelFn = $this->fn->setToModel();
     foreach ($data as $name => $val) {
         if (!array_key_exists($name, $map)) {
             continue;
         }
         $propRule = new PropRule($map[$name]);
         $val = $typeConverter->toModel($val, $propRule, $this);
         $setModelFn->call($model, $propRule->getSet(), $val, $propRule->getProp($name));
     }
 }