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