/**
  * Test real nullable case.
  * @coversNothing
  */
 public function testNullable()
 {
     // Null before validation.
     static::assertTrue(Validation::nullable()->cpf()->validate('')->isSuccess());
     static::assertTrue(Validation::nullable()->cpf()->validate('  ')->isSuccess());
     // Null will pass and will fail in validation.
     static::assertFalse(Validation::nullable()->cpf()->validate('fail')->isSuccess());
     // Fail in validation before null check.
     static::assertFalse(Validation::cpf()->nullable()->validate('')->isSuccess());
 }
 /**
  * Test translateFail method.
  * @covers Rentalhost\VanillaValidation\ValidationLocalize::translateFail
  * @covers Rentalhost\VanillaValidation\ValidationLocalize::maskKey
  * @covers Rentalhost\VanillaValidation\ValidationLocalize::configureLocale
  */
 public function testTranslateFail()
 {
     $defaultLocale = Validation::option('locale');
     Validation::option('locale', 'pt-BR');
     $validation = new Validation();
     $validation->field('username', '')->required();
     $validationFails = $validation->validate()->getFails();
     static::assertSame('o campo "username" é obrigatório', $validationFails[0]->getLocalized());
     $validationFails = Validation::required()->validate('')->getFails();
     static::assertSame('o campo é obrigatório', $validationFails[0]->getLocalized());
     Validation::option('locale', ['unknow', 'pt-BR', 'en']);
     $validationFails = Validation::cpf()->validate('11122244405')->getFails();
     static::assertSame('o campo deve ser um CPF válido', $validationFails[0]->getLocalized());
     Validation::option('locale', $defaultLocale);
 }