MultipleInstanceManagerTest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace Illuminate\Tests\Integration\Support;
  3. use Illuminate\Tests\Integration\Support\Fixtures\MultipleInstanceManager;
  4. use Orchestra\Testbench\TestCase;
  5. class MultipleInstanceManagerTest extends TestCase
  6. {
  7. public function test_configurable_instances_can_be_resolved()
  8. {
  9. $manager = new MultipleInstanceManager($this->app);
  10. $fooInstance = $manager->instance('foo');
  11. $this->assertEquals('option-value', $fooInstance->config['foo-option']);
  12. $barInstance = $manager->instance('bar');
  13. $this->assertEquals('option-value', $barInstance->config['bar-option']);
  14. $duplicateFooInstance = $manager->instance('foo');
  15. $duplicateBarInstance = $manager->instance('bar');
  16. $this->assertEquals(spl_object_hash($fooInstance), spl_object_hash($duplicateFooInstance));
  17. $this->assertEquals(spl_object_hash($barInstance), spl_object_hash($duplicateBarInstance));
  18. }
  19. public function test_unresolvable_isntances_throw_errors()
  20. {
  21. $this->expectException(\RuntimeException::class);
  22. $manager = new MultipleInstanceManager($this->app);
  23. $instance = $manager->instance('missing');
  24. }
  25. }