Ejemplo n.º 1
0
 public function testToModel()
 {
     $data = ['title' => 'name', 'creAt' => new \DateTime(), 'active' => false, 'cats' => [2, 5, 1], 'any' => 'any', 'float' => '12.345', 'count' => '23', 'user' => 'someId', 'similarContent' => [1, 2, 4], 'someRelIds' => [48, 21, 4], 'prevUsers' => [['id' => 1, 'name' => 'alex', 'login' => 'alex', 'creAt' => new \DateTime(), 'active' => false, 'email' => '*****@*****.**']]];
     $this->transformer->getMapsManager()->setMapDir(ContentModel::class, __DIR__ . '/data');
     $this->transformer->getMapsManager()->setMapDir(UserModel::class, __DIR__ . '/data');
     /** @var ContentModel $model */
     $model = $this->transformer->createModel(ContentModel::class);
     $this->transformer->fillModel($data, $model, 'content');
     self::assertInstanceOf('DateTime', $model->getCreAt());
     self::assertEquals($data['creAt']->getTimestamp(), $model->getCreAt()->getTimestamp());
     self::assertEquals($data['title'], $model->getTitle());
     self::assertEquals($data['active'], $model->isActive());
     self::assertEquals($data['cats'], $model->getCats());
     self::assertEquals($data['any'], $model->getAny());
     self::assertEquals($data['float'], $model->getFloat());
     self::assertEquals($data['count'], $model->getCount());
     self::assertEquals($data['user'], $model->getUser());
     self::assertEquals($data['similarContent'], $model->getSimilarContent());
     self::assertEquals($data['someRelIds'], $model->getSomeRelIds());
     self::assertCount(1, $model->getPrevUsers());
     self::assertEquals($data['prevUsers'][0]['email'], $model->getPrevUsers()[0]->getEmail());
     self::assertEquals($data['prevUsers'][0]['id'], $model->getPrevUsers()[0]->getId());
     self::assertEquals($data['prevUsers'][0]['login'], $model->getPrevUsers()[0]->getLogin());
     self::assertEquals($data['prevUsers'][0]['name'], $model->getPrevUsers()[0]->getName());
     self::assertEquals($data['prevUsers'][0]['creAt'], $model->getPrevUsers()[0]->getCreAt());
 }
 public function testFillModel()
 {
     $data = ['name' => 'name', 'login' => 'login', 'creAt' => new \DateTime(), 'active' => false, 'email' => '', 'someField' => 'someValue'];
     $this->transformer->getMapsManager()->setMapDir(UserModel::class, __DIR__ . '/data');
     /** @var UserModel $model */
     $model = $this->transformer->createModel(UserModel::class);
     $this->transformer->fillModel($data, $model, 'dto');
     self::assertInstanceOf('DateTime', $model->getCreAt());
     self::assertEquals($data['creAt']->getTimestamp(), $model->getCreAt()->getTimestamp());
     self::assertEquals($data['email'], $model->getEmail());
     self::assertEquals($data['name'], $model->getName());
     self::assertEquals($data['login'], $model->getLogin());
     self::assertEquals($data['active'], $model->isActive());
 }
Ejemplo n.º 3
0
 /**
  * @param array[] $value
  * @param PropRule $propRule
  * @param DataTransformer $transformer
  * @return mixed[]
  *
  * @throws ParseException
  */
 public function toModel(array $value, PropRule $propRule, DataTransformer $transformer)
 {
     $type = $propRule->getKey('rel')['map'];
     $emptyModel = $transformer->createModel($propRule->getKey('rel')['model']);
     $models = [];
     foreach ($value as $one) {
         $model = clone $emptyModel;
         $transformer->fillModel($one, $model, $type);
         $models[] = $model;
     }
     return $models;
 }