Пример #1
0
 public function testFill()
 {
     $mapping = $this->prophesize(MappingInterface::class);
     $mapping->unbind(['foo' => 'bar'])->willReturn(Data::fromFlatArray(['foo' => 'bar']))->shouldBeCalled();
     $form = (new Form($mapping->reveal()))->fill(['foo' => 'bar']);
     $this->assertSame('bar', $form->getField('foo')->getValue());
 }
Пример #2
0
 public function testUnbind()
 {
     $data = Data::fromFlatArray(['foo' => 'bar']);
     $binder = $this->prophesize(FormatterInterface::class);
     $binder->unbind('foo', 'bar')->willReturn($data);
     $mapping = (new FieldMapping($binder->reveal()))->withPrefixAndRelativeKey('', 'foo');
     $this->assertSame($data, $mapping->unbind('bar'));
 }
Пример #3
0
 public function testThrowErrorOnBindNonExistentKey()
 {
     $bindResult = (new TextFormatter())->bind('foo', Data::fromFlatArray([]));
     $this->assertFalse($bindResult->isSuccess());
     $this->assertCount(1, $bindResult->getFormErrorSequence());
     $error = iterator_to_array($bindResult->getFormErrorSequence())[0];
     $this->assertSame('foo', $error->getKey());
     $this->assertSame('error.required', $error->getMessage());
 }
Пример #4
0
 public function testBindEmptyStringValue()
 {
     $bindResult = (new BooleanFormatter())->bind('foo', Data::fromFlatArray(['foo' => '']));
     $this->assertFalse($bindResult->isSuccess());
     $this->assertCount(1, $bindResult->getFormErrorSequence());
     $error = iterator_to_array($bindResult->getFormErrorSequence())[0];
     $this->assertSame('foo', $error->getKey());
     $this->assertSame('error.boolean', $error->getMessage());
 }
Пример #5
0
 /**
  * {@inheritdoc}
  */
 public function unbind(string $key, $value) : Data
 {
     Assertion::isInstanceOf($value, DateTimeInterface::class);
     $dateTime = $value->setTimezone($this->timeZone);
     if ((int) $dateTime->format('u') > 0) {
         return Data::fromFlatArray([$key => $dateTime->format('H:i:s.u')]);
     }
     return Data::fromFlatArray([$key => $dateTime->format('H:i:s')]);
 }
Пример #6
0
 public function testUnbindValidValues()
 {
     $wrappedMapping = $this->prophesize(MappingInterface::class);
     $wrappedMapping->unbind('baz')->willReturn(Data::fromFlatArray(['foo[bar][0]' => 'baz']));
     $wrappedMapping->unbind('bat')->willReturn(Data::fromFlatArray(['foo[bar][1]' => 'bat']));
     $wrappedMapping->withPrefixAndRelativeKey('foo[bar]', '0')->willReturn($wrappedMapping->reveal());
     $wrappedMapping->withPrefixAndRelativeKey('foo[bar]', '1')->willReturn($wrappedMapping->reveal());
     $mapping = (new RepeatedMapping($wrappedMapping->reveal()))->withPrefixAndRelativeKey('foo', 'bar');
     $data = $mapping->unbind(['baz', 'bat']);
     $this->assertSame('baz', $data->getValue('foo[bar][0]'));
     $this->assertSame('bat', $data->getValue('foo[bar][1]'));
 }
Пример #7
0
 public function testGetNestedValues()
 {
     $field = new Field('foo', '', new FormErrorSequence(), Data::fromFlatArray(['foo[0]' => 'bar0', 'foo[1]' => 'bar1', 'foo[1][baz]' => 'bar2']));
     $this->assertSame(['bar0', 'bar1'], $field->getNestedValues());
 }
Пример #8
0
 /**
  * {@inheritdoc}
  */
 public function unbind(string $key, $value) : Data
 {
     Assertion::string($value);
     Assertion::numeric($value);
     return Data::fromFlatArray([$key => $value]);
 }
Пример #9
0
 /**
  * {@inheritdoc}
  */
 public function unbind(string $key, $value) : Data
 {
     Assertion::boolean($value);
     return Data::fromFlatArray([$key => $value ? 'true' : 'false']);
 }
Пример #10
0
 public function testUnbindNotNullValue()
 {
     $wrappedMapping = $this->prophesize(MappingInterface::class);
     $wrappedMapping->unbind('foo')->willReturn(Data::fromFlatArray(['foo' => 'bar']));
     $mapping = new OptionalMapping($wrappedMapping->reveal());
     $this->assertSame('bar', $mapping->unbind('foo')->getValue('foo'));
 }
Пример #11
0
 public function testIsEmptyReturnsFalseWithData()
 {
     $data = Data::fromFlatArray(['foo' => 'bar']);
     $this->assertFalse($data->isEmpty());
 }
Пример #12
0
 /**
  * {@inheritdoc}
  */
 public function unbind(string $key, $value) : Data
 {
     Assertion::integer($value);
     return Data::fromFlatArray([$key => (string) $value]);
 }
Пример #13
0
 private function getMockedMapping(string $key, string $value = null, Data $data = null, $success = true) : MappingInterface
 {
     $mapping = $this->prophesize(MappingInterface::class);
     if (null !== $value) {
         $mapping->unbind($value)->willReturn(Data::fromFlatArray([$key => $value]));
     }
     if (null !== $value && null !== $data) {
         $mapping->bind($data)->willReturn($success ? BindResult::fromValue($value) : BindResult::fromFormErrors(new FormError($key, $value)));
     }
     $mapping->withPrefixAndRelativeKey('', $key)->willReturn($mapping->reveal());
     return $mapping->reveal();
 }