<?php /** * Test: Nette\Utils\Validators::assert() */ declare(strict_types=1); use Nette\Utils\Validators; use Tester\Assert; require __DIR__ . '/../bootstrap.php'; Assert::exception( fn() => Validators::assert(true, 'int'), Nette\Utils\AssertionException::class, 'The variable expects to be int, bool given.', ); Assert::exception( fn() => Validators::assert('', 'int'), Nette\Utils\AssertionException::class, "The variable expects to be int, string '' given.", ); Assert::exception( fn() => Validators::assert(str_repeat('x', 1000), 'int'), Nette\Utils\AssertionException::class, 'The variable expects to be int, string given.', ); Assert::exception( fn() => Validators::assert('1.0', 'int|float'), Nette\Utils\AssertionException::class, "The variable expects to be int or float, string '1.0' given.", ); Assert::exception( fn() => Validators::assert(null, 'int'), Nette\Utils\AssertionException::class, 'The variable expects to be int, null given.', ); Assert::exception( fn() => Validators::assert(1.0, 'int'), Nette\Utils\AssertionException::class, 'The variable expects to be int, float 1.0 given.', ); Assert::exception( fn() => Validators::assert(1, 'float'), Nette\Utils\AssertionException::class, 'The variable expects to be float, int 1 given.', ); Assert::exception( fn() => Validators::assert([], 'int'), Nette\Utils\AssertionException::class, 'The variable expects to be int, array given.', ); Assert::exception( fn() => Validators::assert(new stdClass, 'int'), Nette\Utils\AssertionException::class, 'The variable expects to be int, object stdClass given.', ); Assert::exception( fn() => Validators::assert(1, 'string|integer:2..5', 'variable'), Nette\Utils\AssertionException::class, 'The variable expects to be string or integer in range 2..5, int 1 given.', ); Assert::exception( fn() => Validators::assert('x', '?int'), Nette\Utils\AssertionException::class, "The variable expects to be ?int, string 'x' given.", );