/**
  * Test validate method.
  * @covers Rentalhost\VanillaValidation\ValidationFieldList::validate
  */
 public function testValidate()
 {
     $fieldList = new ValidationFieldList();
     $fieldList->add('name1', 'value1')->string()->required();
     $fieldList->add('name2', 'value2')->string()->required();
     $fieldListResult = $fieldList->validate();
     static::assertTrue($fieldListResult->isSuccess());
     static::assertCount(0, $fieldListResult->getFails());
     static::assertCount(4, $fieldListResult->getSuccesses());
     $fieldList = new ValidationFieldList();
     $fieldList->add('name1', 'value1')->string()->required();
     $fieldList->add('name2', 123)->string()->required();
     $fieldListResult = $fieldList->validate();
     static::assertFalse($fieldListResult->isSuccess());
     static::assertCount(1, $fieldListResult->getFails());
     static::assertCount(3, $fieldListResult->getSuccesses());
     $fieldList = new ValidationFieldList();
     $fieldListResult = $fieldList->validate();
     static::assertTrue($fieldListResult->isSuccess());
     static::assertCount(0, $fieldListResult->getFails());
     static::assertCount(0, $fieldListResult->getSuccesses());
 }
 /**
  * Add a field and return the instance.
  *
  * @param string     $name  Field name.
  * @param mixed|null $value Field value.
  * @param mixed|null $data  Additional data to field.
  *
  * @return ValidationField
  */
 public function field($name, $value = null, $data = null)
 {
     return $this->fields->add($name, $value, $data);
 }