/** * Is the default view partial correct? * Does setting and getting view partial work? */ public function testSetAndGetViewPartial() { $target = new EmployeeFieldset(); $this->assertEquals('organizations/form/employee-fieldset', $target->getViewPartial()); $target->setViewPartial('test1234'); $this->assertEquals('test1234', $target->getViewPartial()); }
/** * Create the fieldset. * * {@inheritDoc} * * @return EmployeeFieldset */ public function createService(ServiceLocatorInterface $serviceLocator) { /* @var $serviceLocator \Zend\ServiceManager\AbstractPluginManager */ $services = $serviceLocator->getServiceLocator(); $fieldset = new EmployeeFieldset(); $hydrator = new \Zend\Hydrator\ClassMethods(false); //new EntityHydrator(); $repositories = $services->get('repositories'); $users = $repositories->get('Auth/User'); /* @var $users \Auth\Repository\User */ /* todo: WRITE own Hydrator strategy class */ $strategy = new ClosureStrategy(function ($object) use($users) { if (is_string($object)) { return $users->find($object); } return $object; }, function ($data) use($users) { if (is_string($data)) { $data = $users->find($data); } return $data; }); /* todo: write own strategy class */ $permStrategy = new ClosureStrategy(function ($object) { /* @var $object \Organizations\Entity\EmployeePermissionsInterface */ $values = array(); foreach (array(Perms::JOBS_VIEW, Perms::JOBS_CHANGE, PERMS::JOBS_CREATE, Perms::APPLICATIONS_VIEW, Perms::APPLICATIONS_CHANGE) as $perm) { if ($object->isAllowed($perm)) { $values[] = $perm; } } return $values; }, function ($data) { $permissions = array_reduce($data, function ($c, $i) { return $c | $i; }, 0); return new EmployeePermissions($permissions); }); $hydrator->addStrategy('user', $strategy); $hydrator->addStrategy('permissions', $permStrategy); $fieldset->setHydrator($hydrator); $fieldset->setObject(new \Organizations\Entity\Employee()); return $fieldset; }