Пример #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());
 }
Пример #2
0
 public function testAllowedItems()
 {
     $user = new \Tests\User();
     $user->setId(10);
     $role = new \Tests\Role();
     $role->setId(1);
     $role->setName('foo');
     $user->setRole($role);
     $item = new \Tests\Item();
     $item->setId(20);
     $user->addItem($item);
     $settings = new \WebChemistry\Forms\Doctrine\Settings();
     $settings->setAllowedItems(['id', 'role' => ['id'], 'items' => ['id']]);
     $this->assertEquals(['id' => 10, 'role' => ['id' => 1], 'items' => [['id' => 20]]], $this->helper->toArray($user, $settings));
 }