/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Support/MultipleInstanceManagerTest.php
47 строк
2 KB
Sergey Danilchenko
[13.x] Bind manager instances to custom driver closures (#57173)
06 окт 2025, 17:48
Не верифицирован
06 окт 2025, 17:48
db6a06a
Код
Авторство
О чём код?
<?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']); $mysqlInstance = $manager->instance('mysql_database-connection'); $this->assertSame('option-value', $mysqlInstance->config['mysql_database-connection-option']); $duplicateFooInstance = $manager->instance('foo'); $duplicateBarInstance = $manager->instance('bar'); $duplicateMysqlInstance = $manager->instance('mysql_database-connection'); $this->assertEquals(spl_object_hash($fooInstance), spl_object_hash($duplicateFooInstance)); $this->assertEquals(spl_object_hash($barInstance), spl_object_hash($duplicateBarInstance)); $this->assertEquals(spl_object_hash($mysqlInstance), spl_object_hash($duplicateMysqlInstance)); } public function test_unresolvable_instances_throw_errors() { $this->expectException(RuntimeException::class); $manager = new MultipleInstanceManager($this->app); $instance = $manager->instance('missing'); } public function test_custom_driver_closure_bound_object_is_multiple_instance_manager() { $manager = new MultipleInstanceManager($this->app); $manager->extend('custom', fn () => $this); $this->assertSame($manager, $manager->instance('custom')); } }