/
MultipleInstanceManagerTest.php
35 lines (26 loc) · 1.18 KB
/
MultipleInstanceManagerTest.php
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_isntances_throw_errors()
{
$this->expectException(RuntimeException::class);
$manager = new MultipleInstanceManager($this->app);
$instance = $manager->instance('missing');
}
}