Arrays.get().phpt 853 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Test: Nette\Utils\Arrays::get()
  4. */
  5. declare(strict_types=1);
  6. use Nette\Utils\Arrays;
  7. use Tester\Assert;
  8. require __DIR__ . '/../bootstrap.php';
  9. $arr = [
  10. '' => 'first',
  11. 1 => 'second',
  12. 7 => [
  13. 'item' => 'third',
  14. ],
  15. ];
  16. test('Single item', function () use ($arr) {
  17. Assert::same('first', Arrays::get($arr, ''));
  18. Assert::same('second', Arrays::get($arr, 1));
  19. Assert::same('second', Arrays::get($arr, 1, 'x'));
  20. Assert::same('x', Arrays::get($arr, 'undefined', 'x'));
  21. Assert::exception(
  22. fn() => Arrays::get($arr, 'undefined'),
  23. Nette\InvalidArgumentException::class,
  24. "Missing item 'undefined'.",
  25. );
  26. });
  27. test('Traversing', function () use ($arr) {
  28. Assert::same([
  29. '' => 'first',
  30. 1 => 'second',
  31. 7 => [
  32. 'item' => 'third',
  33. ],
  34. ], Arrays::get($arr, []));
  35. Assert::same('third', Arrays::get($arr, [7, 'item']));
  36. });