UtilTest.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Illuminate\Tests\Container;
  3. use Illuminate\Container\Util;
  4. use PHPUnit\Framework\TestCase;
  5. use stdClass;
  6. class UtilTest extends TestCase
  7. {
  8. public function testUnwrapIfClosure()
  9. {
  10. $this->assertSame('foo', Util::unwrapIfClosure('foo'));
  11. $this->assertSame('foo', Util::unwrapIfClosure(function () {
  12. return 'foo';
  13. }));
  14. }
  15. public function testArrayWrap()
  16. {
  17. $string = 'a';
  18. $array = ['a'];
  19. $object = new stdClass;
  20. $object->value = 'a';
  21. $this->assertEquals(['a'], Util::arrayWrap($string));
  22. $this->assertEquals($array, Util::arrayWrap($array));
  23. $this->assertEquals([$object], Util::arrayWrap($object));
  24. $this->assertEquals([], Util::arrayWrap(null));
  25. $this->assertEquals([null], Util::arrayWrap([null]));
  26. $this->assertEquals([null, null], Util::arrayWrap([null, null]));
  27. $this->assertEquals([''], Util::arrayWrap(''));
  28. $this->assertEquals([''], Util::arrayWrap(['']));
  29. $this->assertEquals([false], Util::arrayWrap(false));
  30. $this->assertEquals([false], Util::arrayWrap([false]));
  31. $this->assertEquals([0], Util::arrayWrap(0));
  32. $obj = new stdClass;
  33. $obj->value = 'a';
  34. $obj = unserialize(serialize($obj));
  35. $this->assertEquals([$obj], Util::arrayWrap($obj));
  36. $this->assertSame($obj, Util::arrayWrap($obj)[0]);
  37. }
  38. }