public function __construct(Prototyped $subject) { $this->subject = $subject; $form = $this->subject->proto()->makeForm()->add(Primitive::choice('action')->setList($this->commandMap)->setDefault($this->defaultAction)); if ($this->idFieldName) { $form->add(Primitive::alias($this->idFieldName, $form->get('id'))); } $this->map = MappedForm::create($form)->addSource('id', RequestType::get())->addSource('action', RequestType::get())->setDefaultType(RequestType::post()); if ($this->idFieldName) { $this->map->addSource($this->idFieldName, RequestType::get()); } }
public function testCustomError() { $realPrimitive = new PrimitiveCustomError('customError'); $realPrimitive->setMax(1); $form = Form::create()->add($realPrimitive)->add(Primitive::alias('alias', $realPrimitive))->import(array('alias' => 'Toooo long')); $errors = $form->getErrors(); $this->assertTrue(isset($errors['alias'])); $this->assertEquals(PrimitiveCustomError::CUSTOM_MARK, $errors['alias']); $form->clean()->dropAllErrors()->import(array('customError' => 'Toooo long')); $errors = $form->getErrors(); $this->assertTrue(isset($errors['customError'])); $this->assertEquals(PrimitiveCustomError::CUSTOM_MARK, $errors['customError']); }