/** * 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 nullable rule. * @covers Rentalhost\VanillaValidation\ValidationFieldRuleList::validate * @covers Rentalhost\VanillaValidation\Result\Nullable::__construct * @covers Rentalhost\VanillaValidation\Rule\NullableRule::validate */ public function testNullable() { // Both are invalid, because both is not nullable ('hello' != empty). $validation = Validation::nullable()->minLength(8)->validate('hello'); static::assertCount(1, $validation->getFails()); $validation = Validation::minLength(8)->nullable()->validate('hello'); static::assertCount(1, $validation->getFails()); // But here, one first will works, because it check by nullable first, // then the next rule is ignored ('' == empty). $validation = Validation::nullable()->minLength(8)->validate(''); static::assertCount(0, $validation->getFails()); $validation = Validation::minLength(8)->nullable()->validate(''); static::assertCount(1, $validation->getFails()); }
/** * Configure translator locale. */ public static function configureLocale() { $localeOption = Validation::option('locale'); if (!is_array($localeOption)) { /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ self::$translator->setLocale($localeOption); /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ self::$translator->setFallbackLocales([$localeOption]); } else { /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ self::$translator->setLocale(array_shift($localeOption)); /** @noinspection ExceptionsAnnotatingAndHandlingInspection */ self::$translator->setFallbackLocales($localeOption); } }
/** * 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 intersect numbers with CPF. * @coversNothing */ public function testWithIntersectNumbers() { static::assertTrue(Validation::intersectNumbers()->cpf()->validate('342.444.198-88')->isSuccess()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::mask('#-##')); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::maxLength(5)); }
/** * Test intersect numbers with CEP. * @coversNothing */ public function testWithIntersectNumbers() { static::assertTrue(Validation::intersectNumbers()->cep()->validate('12345-678')->isSuccess()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::required()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::equals('test')); }
/** * Test collect method. * @covers Rentalhost\VanillaValidation\ValidationChain::collect */ public function testCollect() { Validation::collect($beforeAction)->trim()->collect($afterAction)->validate(' hello '); static::assertSame(' hello ', $beforeAction); static::assertSame('hello', $afterAction); }
/** * Test intersect numbers with CNPJ. * @coversNothing */ public function testWithIntersectNumbers() { static::assertTrue(Validation::intersectNumbers()->cnpj()->validate('38.175.021/0001-10')->isSuccess()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::intersectNumbers()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::bool()); static::assertInstanceOf(ValidationChain::class, Validation::boolean()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::positive()); }
/** * Test rule directly. * @coversNothing */ public function testDirect() { static::assertInstanceOf(ValidationChain::class, Validation::integer()); static::assertInstanceOf(ValidationChain::class, Validation::int()); }