public function unbind($value) : Data { if (null === $value) { return Data::none(); } return $this->wrappedMapping->unbind($value); }
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; }
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(); }
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'])); }
public function testHasErrorsReturnsTrueWithErrors() { $errors = new FormErrorSequence(new FormError('', '')); $field = new Field('', '', $errors, Data::none()); $this->assertTrue($field->hasErrors()); }
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; }
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'])); }
public function testCustomAttribute() { $helper = new Textarea(); $this->assertSame('<textarea data-foo="bar" id="input.foo" name="foo">bar&</textarea>', $helper(new Field('foo', 'bar&', new FormErrorSequence(), Data::none()), ['data-foo' => 'bar'])); }
public function __construct(MappingInterface $mapping) { $this->mapping = $mapping; $this->data = Data::none(); $this->errors = new FormErrorSequence(); }
public function testIsEmptyReturnsTrueWithoutData() { $data = Data::none(); $this->assertTrue($data->isEmpty()); }
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']])); }