Ejemplo n.º 1
0
 public function unbind($value) : Data
 {
     if (null === $value) {
         return Data::none();
     }
     return $this->wrappedMapping->unbind($value);
 }
Ejemplo n.º 2
0
 public function unbind($value) : Data
 {
     Assertion::isArray($value);
     $data = Data::none();
     foreach ($value as $index => $individualValue) {
         $data = $data->merge($this->wrappedMapping->withPrefixAndRelativeKey($this->key, (string) $index)->unbind($individualValue));
     }
     return $data;
 }
Ejemplo n.º 3
0
 public function testBindInvalidData()
 {
     $data = Data::none();
     $mapping = $this->prophesize(MappingInterface::class);
     $mapping->bind($data)->willReturn(BindResult::fromFormErrors(new FormError('', 'foo')))->shouldBeCalled();
     $form = (new Form($mapping->reveal()))->bind($data);
     $this->assertTrue($form->hasErrors());
     $this->assertSame('foo', iterator_to_array($form->getGlobalErrors())[0]->getMessage());
     $this->expectException(AssertionFailedException::class);
     $form->getValue();
 }
Ejemplo n.º 4
0
 public function testCustomAttribute()
 {
     $helper = new InputPassword();
     $this->assertSame('<input data-foo="bar" type="password" id="input.foo" name="foo">', $helper(new Field('foo', 'bar&', new FormErrorSequence(), Data::none()), ['data-foo' => 'bar']));
 }
Ejemplo n.º 5
0
 public function testHasErrorsReturnsTrueWithErrors()
 {
     $errors = new FormErrorSequence(new FormError('', ''));
     $field = new Field('', '', $errors, Data::none());
     $this->assertTrue($field->hasErrors());
 }
Ejemplo n.º 6
0
 public function unbind($value) : Data
 {
     $data = Data::none();
     $unapply = $this->unapply;
     $values = $unapply($value);
     Assertion::isArray($values);
     foreach ($this->mappings as $key => $mapping) {
         Assertion::keyExists($values, $key);
         $data = $data->merge($mapping->unbind($values[$key]));
     }
     return $data;
 }
Ejemplo n.º 7
0
 public function testCustomAttribute()
 {
     $helper = new InputCheckbox();
     $this->assertSame('<input data-foo="bar" type="checkbox" id="input.foo" name="foo" value="true">', $helper(new Field('foo', '', new FormErrorSequence(), Data::none()), ['data-foo' => 'bar']));
 }
Ejemplo n.º 8
0
 public function testCustomAttribute()
 {
     $helper = new Textarea();
     $this->assertSame('<textarea data-foo="bar" id="input.foo" name="foo">bar&amp;</textarea>', $helper(new Field('foo', 'bar&', new FormErrorSequence(), Data::none()), ['data-foo' => 'bar']));
 }
Ejemplo n.º 9
0
 public function __construct(MappingInterface $mapping)
 {
     $this->mapping = $mapping;
     $this->data = Data::none();
     $this->errors = new FormErrorSequence();
 }
Ejemplo n.º 10
0
 public function testIsEmptyReturnsTrueWithoutData()
 {
     $data = Data::none();
     $this->assertTrue($data->isEmpty());
 }
Ejemplo n.º 11
0
 public function testOptGroups()
 {
     $helper = new Select();
     $this->assertSame("<select id=\"input.foo\" name=\"foo\"><option value=\"foo\">bar</option>\n" . "<optgroup label=\"baz\"><option value=\"bat\">a</option></optgroup></select>", $helper(new Field('foo', '', new FormErrorSequence(), Data::none()), ['foo' => 'bar', 'baz' => ['bat' => 'a']]));
 }