FoundationAliasLoaderTest.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Illuminate\Tests\Foundation;
  3. use Illuminate\Foundation\AliasLoader;
  4. use PHPUnit\Framework\TestCase;
  5. class FoundationAliasLoaderTest extends TestCase
  6. {
  7. public function testLoaderCanBeCreatedAndRegisteredOnce()
  8. {
  9. $loader = AliasLoader::getInstance(['foo' => 'bar']);
  10. $this->assertEquals(['foo' => 'bar'], $loader->getAliases());
  11. $this->assertFalse($loader->isRegistered());
  12. $loader->register();
  13. $this->assertTrue($loader->isRegistered());
  14. }
  15. public function testGetInstanceCreatesOneInstance()
  16. {
  17. $loader = AliasLoader::getInstance(['foo' => 'bar']);
  18. $this->assertSame($loader, AliasLoader::getInstance());
  19. }
  20. public function testLoaderCanBeCreatedAndRegisteredMergingAliases()
  21. {
  22. $loader = AliasLoader::getInstance(['foo' => 'bar']);
  23. $this->assertEquals(['foo' => 'bar'], $loader->getAliases());
  24. $loader = AliasLoader::getInstance(['foo2' => 'bar2']);
  25. $this->assertEquals(['foo2' => 'bar2', 'foo' => 'bar'], $loader->getAliases());
  26. // override keys
  27. $loader = AliasLoader::getInstance(['foo' => 'baz']);
  28. $this->assertEquals(['foo2' => 'bar2', 'foo' => 'baz'], $loader->getAliases());
  29. }
  30. public function testLoaderCanAliasAndLoadClasses()
  31. {
  32. $loader = AliasLoader::getInstance(['some_alias_foo_bar' => FoundationAliasLoaderStub::class]);
  33. $result = $loader->load('some_alias_foo_bar');
  34. $this->assertInstanceOf(FoundationAliasLoaderStub::class, new \some_alias_foo_bar);
  35. $this->assertTrue($result);
  36. $result2 = $loader->load('bar');
  37. $this->assertNull($result2);
  38. }
  39. public function testSetAlias()
  40. {
  41. $loader = AliasLoader::getInstance();
  42. $loader->setAliases(['some_alias_foo' => FoundationAliasLoaderStub::class]);
  43. $result = $loader->load('some_alias_foo');
  44. $fooObj = new \some_alias_foo;
  45. $this->assertInstanceOf(FoundationAliasLoaderStub::class, $fooObj);
  46. $this->assertTrue($result);
  47. }
  48. }
  49. class FoundationAliasLoaderStub
  50. {
  51. //
  52. }