/**
  * Test singleton.
  * @covers Rentalhost\VanillaValidation\ValidationRules::singleton
  */
 public function testSingleton()
 {
     $singleton = ValidationRules::singleton();
     /** @noinspection StaticInvocationViaThisInspection */
     static::assertTrue($singleton->has('required'));
     /** @var ReflectionProperty $resetInstance */
     $resetInstance = new ReflectionProperty(ValidationRules::class, 'instance');
     $resetInstance->setAccessible(true);
     $resetInstance->setValue(null);
     $singletonUncached = ValidationRules::singleton();
     /** @noinspection StaticInvocationViaThisInspection */
     static::assertTrue($singletonUncached->has('required'));
 }
 /**
  * Test RuleNotImplementedException.
  * @covers Rentalhost\VanillaValidation\ValidationRulesSingleton::validate
  */
 public function testRuleNotImplementedException()
 {
     $this->expectException(Exception\RuleNotImplementedException::class);
     $fieldRule = new ValidationFieldRule('undefined');
     ValidationRules::validate($fieldRule, null);
 }
 /**
  * Validate this rule with value.
  *
  * @param mixed $value Value to validate.
  *
  * @return Result
  */
 public function validate($value)
 {
     return ValidationRules::validate($this, $value);
 }