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()); }
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)); }