|
5 | 5 | use Enqueue\Bundle\DependencyInjection\Configuration;
|
6 | 6 | use Enqueue\Bundle\DependencyInjection\EnqueueExtension;
|
7 | 7 | use Enqueue\Bundle\Tests\Unit\Mocks\FooTransportFactory;
|
| 8 | +use Enqueue\Bundle\Tests\Unit\Mocks\TransportFactoryWithoutDriverFactory; |
8 | 9 | use Enqueue\Client\Producer;
|
9 | 10 | use Enqueue\Client\TraceableProducer;
|
10 | 11 | use Enqueue\Null\NullContext;
|
@@ -129,7 +130,10 @@ public function testShouldConfigureFooTransport()
|
129 | 130 | ],
|
130 | 131 | ]], $container);
|
131 | 132 |
|
| 133 | + self::assertTrue($container->hasDefinition('foo.connection_factory')); |
132 | 134 | self::assertTrue($container->hasDefinition('foo.context'));
|
| 135 | + self::assertFalse($container->hasDefinition('foo.driver')); |
| 136 | + |
133 | 137 | $context = $container->getDefinition('foo.context');
|
134 | 138 | self::assertEquals(\stdClass::class, $context->getClass());
|
135 | 139 | self::assertEquals([['foo_param' => 'aParam']], $context->getArguments());
|
@@ -176,10 +180,31 @@ public function testShouldLoadClientServicesWhenEnabled()
|
176 | 180 | ],
|
177 | 181 | ]], $container);
|
178 | 182 |
|
| 183 | + self::assertTrue($container->hasDefinition('foo.driver')); |
179 | 184 | self::assertTrue($container->hasDefinition('enqueue.client.config'));
|
180 | 185 | self::assertTrue($container->hasDefinition('enqueue.client.producer'));
|
181 | 186 | }
|
182 | 187 |
|
| 188 | + public function testShouldNotCreateDriverIfFactoryDoesNotImplementDriverFactoryInterface() |
| 189 | + { |
| 190 | + $container = new ContainerBuilder(); |
| 191 | + |
| 192 | + $extension = new EnqueueExtension(); |
| 193 | + $extension->addTransportFactory(new TransportFactoryWithoutDriverFactory()); |
| 194 | + |
| 195 | + $extension->load([[ |
| 196 | + 'client' => null, |
| 197 | + 'transport' => [ |
| 198 | + 'default' => 'without_driver', |
| 199 | + 'without_driver' => [], |
| 200 | + ], |
| 201 | + ]], $container); |
| 202 | + |
| 203 | + self::assertTrue($container->hasDefinition('without_driver.context')); |
| 204 | + self::assertTrue($container->hasDefinition('without_driver.connection_factory')); |
| 205 | + self::assertFalse($container->hasDefinition('without_driver.driver')); |
| 206 | + } |
| 207 | + |
183 | 208 | public function testShouldUseProducerByDefault()
|
184 | 209 | {
|
185 | 210 | $container = new ContainerBuilder();
|
|
0 commit comments