Пример #1
0
 public function testFind()
 {
     $array = array('id' => 1, 'role' => 1, 'items' => [1, 2, 3]);
     $settings = new \WebChemistry\Forms\Doctrine\Settings();
     $settings->setFind(array('role', 'items'));
     /** @var \Tests\User $entity */
     $entity = $this->helper->toEntity('Tests\\User', $array, $settings);
     $this->assertEquals(['Tests\\Role' => [1], 'Tests\\Item' => [1, 2, 3]], \Tests\DefaultRepository::$find);
     $this->assertNotNull($entity->getRole());
     $this->assertInstanceOf('Tests\\Role', $entity->getRole());
     $this->assertSame(3, $entity->getItems()->count());
     foreach ($entity->getItems() as $item) {
         $this->assertInstanceOf('Tests\\Item', $item);
     }
     $array = ['role' => $role = new \Tests\Role()];
     /** @var \Tests\User $entity */
     $entity = $this->helper->toEntity('Tests\\User', $array, $settings);
     $this->assertSame($role, $entity->getRole());
     $array = ['role' => ['id' => 10]];
     /** @var \Tests\User $entity */
     $entity = $this->helper->toEntity('Tests\\User', $array, $settings);
     $this->assertSame(10, $entity->getRole()->getId());
     $array = ['role' => NULL];
     /** @var \Tests\User $entity */
     $entity = $this->helper->toEntity('Tests\\User', $array, $settings);
     $this->assertNull($entity->getRole());
 }