/**
  * 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);
 }
 /**
  * Test locale.
  * @covers Rentalhost\VanillaValidation\Result\Fail::getLocalized
  */
 public function testLocale()
 {
     $optionLocale = Validation::option('locale');
     // Valid.
     Validation::option('locale', ['pt-BR']);
     $validation = Validation::required()->validate('');
     static::assertCount(1, $validation->getFails());
     $validationFail = $validation->getFails()[0];
     static::assertSame('o campo é obrigatório', $validationFail->getLocalized());
     Validation::option('locale', 'pt-BR');
     static::assertSame('o campo é obrigatório', $validationFail->getLocalized());
     Validation::option('locale', ['unknow', 'pt-BR']);
     static::assertSame('o campo é obrigatório', $validationFail->getLocalized());
     // Fail.
     Validation::option('locale', ['unknow']);
     static::assertSame('fail:required', $validationFail->getLocalized());
     Validation::option('locale', 'unknow');
     static::assertSame('fail:required', $validationFail->getLocalized());
     Validation::option('locale', $optionLocale);
 }
 /**
  * Test static/chain method.
  * @covers Rentalhost\VanillaValidation\Validation::__callStatic
  */
 public function testStatic()
 {
     static::assertTrue(Validation::required()->string()->validate('test')->isSuccess());
 }
 /**
  * Test rule directly.
  * @coversNothing
  */
 public function testDirect()
 {
     static::assertInstanceOf(ValidationChain::class, Validation::required());
 }