|
13 | 13 |
|
14 | 14 | use PHPUnit\Framework\TestCase; |
15 | 15 | use Symfony\AI\McpBundle\DependencyInjection\McpPass; |
| 16 | +use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; |
16 | 17 | use Symfony\Component\DependencyInjection\ContainerBuilder; |
17 | 18 | use Symfony\Component\DependencyInjection\Definition; |
| 19 | +use Symfony\Component\DependencyInjection\Reference; |
18 | 20 |
|
19 | 21 | /** |
20 | 22 | * @covers \Symfony\AI\McpBundle\DependencyInjection\McpPass |
@@ -53,6 +55,18 @@ public function testCreatesServiceLocatorForAllMcpServices() |
53 | 55 | $this->assertArrayHasKey('prompt_service', $services); |
54 | 56 | $this->assertArrayHasKey('resource_service', $services); |
55 | 57 | $this->assertArrayHasKey('template_service', $services); |
| 58 | + |
| 59 | + // Verify services are ServiceClosureArguments wrapping References |
| 60 | + $this->assertInstanceOf(ServiceClosureArgument::class, $services['tool_service']); |
| 61 | + $this->assertInstanceOf(ServiceClosureArgument::class, $services['prompt_service']); |
| 62 | + $this->assertInstanceOf(ServiceClosureArgument::class, $services['resource_service']); |
| 63 | + $this->assertInstanceOf(ServiceClosureArgument::class, $services['template_service']); |
| 64 | + |
| 65 | + // Verify the underlying values are References |
| 66 | + $this->assertInstanceOf(Reference::class, $services['tool_service']->getValues()[0]); |
| 67 | + $this->assertInstanceOf(Reference::class, $services['prompt_service']->getValues()[0]); |
| 68 | + $this->assertInstanceOf(Reference::class, $services['resource_service']->getValues()[0]); |
| 69 | + $this->assertInstanceOf(Reference::class, $services['template_service']->getValues()[0]); |
56 | 70 | } |
57 | 71 |
|
58 | 72 | public function testDoesNothingWhenNoMcpServicesTagged() |
@@ -115,5 +129,13 @@ public function testHandlesPartialMcpServices() |
115 | 129 | $this->assertArrayHasKey('prompt_service', $services); |
116 | 130 | $this->assertArrayNotHasKey('resource_service', $services); |
117 | 131 | $this->assertArrayNotHasKey('template_service', $services); |
| 132 | + |
| 133 | + // Verify services are ServiceClosureArguments wrapping References |
| 134 | + $this->assertInstanceOf(ServiceClosureArgument::class, $services['tool_service']); |
| 135 | + $this->assertInstanceOf(ServiceClosureArgument::class, $services['prompt_service']); |
| 136 | + |
| 137 | + // Verify the underlying values are References |
| 138 | + $this->assertInstanceOf(Reference::class, $services['tool_service']->getValues()[0]); |
| 139 | + $this->assertInstanceOf(Reference::class, $services['prompt_service']->getValues()[0]); |
118 | 140 | } |
119 | 141 | } |
0 commit comments