Validators.everyIs().phpt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Validators::everyIs()
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Validators;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. test('', function () {
  10. class Abc
  11. {
  12. }
  13. Assert::true(Validators::everyIs([], 'int'));
  14. Assert::true(Validators::everyIs(new ArrayIterator([]), 'int'));
  15. Assert::true(Validators::everyIs([1, 2, 3], 'int'));
  16. Assert::false(Validators::everyIs([1, 2.15, 3], 'int'));
  17. Assert::true(Validators::everyIs([1, 2.15, 3], 'int|float'));
  18. Assert::true(Validators::everyIs(new ArrayIterator([1, 2, 3]), 'int'));
  19. Assert::false(Validators::everyIs(new ArrayIterator([1, 2.15, 3]), 'int'));
  20. Assert::true(Validators::everyIs([new Abc], 'Abc'));
  21. Assert::false(Validators::everyIs([new Abc, new stdClass], 'Abc'));
  22. Assert::true(Validators::everyIs(['ABCD', 'EFGH', 'IJKL'], 'string:4'));
  23. Assert::false(Validators::everyIs(['ABCD', 'EFGH', 'IJKLM'], 'string:4'));
  24. Assert::false(Validators::everyIs([1, 2, 3], 'int[]'));
  25. Assert::true(Validators::everyIs([[1], [2, 3]], 'int[]'));
  26. Assert::true(Validators::everyIs([['ABCD', 'EFGH'], ['IJKL']], 'string:4[]'));
  27. Assert::false(Validators::everyIs([['ABCD', 'EFGH'], ['IJKLM']], 'string:4[]'));
  28. });
  29. test('', function () {
  30. $gen = function () {
  31. yield 1;
  32. yield 2;
  33. yield 3;
  34. };
  35. Assert::true(Validators::everyIs($gen(), 'int'));
  36. });
  37. Assert::exception(function () {
  38. $var = new stdClass;
  39. $var->a = 1;
  40. Validators::everyIs($var, 'int');
  41. }, TypeError::class);