/**
  * Test basic methods.
  * @covers Rentalhost\VanillaValidation\ValidationChain::__construct
  * @covers Rentalhost\VanillaValidation\ValidationChain::__call
  * @covers Rentalhost\VanillaValidation\ValidationChain::validate
  */
 public function testBasic()
 {
     static::assertClassHasAttribute('rules', ValidationChain::class);
     $chain = new ValidationChain();
     static::assertTrue($chain->notEmpty()->trim()->validate(' ')->isSuccess());
     $chain = new ValidationChain();
     static::assertFalse($chain->required()->validate(' ')->isSuccess());
     $chain = new ValidationChain();
     static::assertTrue($chain->required()->string()->validate('hello')->isSuccess());
     static::assertFalse($chain->required()->string()->validate(123)->isSuccess());
     static::assertFalse($chain->required()->string()->validate(null)->isSuccess());
 }
 /**
  * Create a chain instance.
  *
  * @param string $function First chain function.
  * @param mixed  $args     First chain parameters.
  *
  * @return ValidationChain
  */
 public static function __callStatic($function, $args)
 {
     $chain = new ValidationChain();
     /** @noinspection ImplicitMagicMethodCallInspection */
     $chain->__call($function, $args);
     return $chain;
 }