Validators.isInRange().phpt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Validators::isInRange()
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Validators;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. Assert::true(Validators::isInRange(1, [0, 2]));
  10. Assert::false(Validators::isInRange(-1, [0, 2]));
  11. Assert::true(Validators::isInRange(-1, [-1, 1]));
  12. Assert::true(Validators::isInRange(1, [-1, 1]));
  13. Assert::true(Validators::isInRange(0.1, [-0.5, 0.5]));
  14. Assert::false(Validators::isInRange(2, [-1, 1]));
  15. Assert::false(Validators::isInRange(2.5, [-1, 1]));
  16. Assert::true(Validators::isInRange('a', ['a', 'z']));
  17. Assert::false(Validators::isInRange('A', ['a', 'z']));
  18. Assert::true(Validators::isInRange(-1, [null, 2]));
  19. Assert::true(Validators::isInRange(-1, ['', 2]));
  20. Assert::true(Validators::isInRange(1, [-1, null]));
  21. Assert::false(Validators::isInRange(1, [-1, '']));
  22. Assert::false(Validators::isInRange(0, [null, null]));
  23. Assert::false(Validators::isInRange('', [null, null]));
  24. Assert::false(Validators::isInRange(10, [null, null]));
  25. Assert::false(Validators::isInRange(null, [0, 1]));
  26. Assert::false(Validators::isInRange(null, ['0', 'b']));
  27. Assert::true(Validators::isInRange('', ['', '']));
  28. Assert::true(Validators::isInRange('', ['', 'b']));
  29. Assert::false(Validators::isInRange('', ['a', 'b']));
  30. Assert::false(Validators::isInRange('', [0, 1]));
  31. Assert::false(Validators::isInRange('', [0, 1]));
  32. Assert::false(Validators::isInRange('a', [1, null]));
  33. Assert::false(Validators::isInRange('a', [null, 9]));
  34. Assert::true(Validators::isInRange('1', [null, 9]));
  35. Assert::false(Validators::isInRange(10, ['a', null]));
  36. Assert::true(Validators::isInRange(10, [null, 'a']));
  37. Assert::false(Validators::isInRange(new DateTimeImmutable('2017-04-26'), [new DateTime('2017-04-20'), new DateTime('2017-04-23')]));
  38. Assert::true(Validators::isInRange(new DateTimeImmutable('2017-04-26'), [new DateTime('2017-04-20'), new DateTime('2017-04-30')]));
  39. Assert::false(Validators::isInRange(new DateTimeImmutable('2017-04-26'), [10, null]));
  40. Assert::false(Validators::isInRange(new DateTimeImmutable('2017-04-26'), [null, 10]));