9
9
use Enqueue \Client \TraceableProducer ;
10
10
use Enqueue \Symfony \DefaultTransportFactory ;
11
11
use Enqueue \Null \Symfony \NullTransportFactory ;
12
+ use Enqueue \Symfony \TransportFactoryInterface ;
12
13
use Enqueue \Test \ClassExtensionTrait ;
13
14
use Enqueue \Null \NullContext ;
14
15
use Symfony \Component \DependencyInjection \ContainerBuilder ;
@@ -30,6 +31,25 @@ public function testCouldBeConstructedWithoutAnyArguments()
30
31
new EnqueueExtension ();
31
32
}
32
33
34
+ public function testShouldRegisterDefaultAndNullTransportFactoriesInConstructor ()
35
+ {
36
+ $ extension = new EnqueueExtension ();
37
+
38
+ /** @var TransportFactoryInterface[] $factories */
39
+ $ factories = $ this ->readAttribute ($ extension , 'factories ' );
40
+
41
+ $ this ->assertInternalType ('array ' , $ factories );
42
+ $ this ->assertCount (2 , $ factories );
43
+
44
+ $ this ->assertArrayHasKey ('default ' , $ factories );
45
+ $ this ->assertInstanceOf (DefaultTransportFactory::class, $ factories ['default ' ]);
46
+ $ this ->assertEquals ('default ' , $ factories ['default ' ]->getName ());
47
+
48
+ $ this ->assertArrayHasKey ('null ' , $ factories );
49
+ $ this ->assertInstanceOf (NullTransportFactory::class, $ factories ['null ' ]);
50
+ $ this ->assertEquals ('null ' , $ factories ['null ' ]->getName ());
51
+ }
52
+
33
53
public function testThrowIfTransportFactoryNameEmpty ()
34
54
{
35
55
$ extension = new EnqueueExtension ();
@@ -52,31 +72,32 @@ public function testThrowIfTransportFactoryWithSameNameAlreadyAdded()
52
72
$ extension ->addTransportFactory (new FooTransportFactory ('foo ' ));
53
73
}
54
74
55
- public function testShouldConfigureNullTransport ()
75
+ public function testShouldEnabledNullTransportAndSetItAsDefault ()
56
76
{
57
77
$ container = new ContainerBuilder ();
58
78
59
79
$ extension = new EnqueueExtension ();
60
- $ extension ->addTransportFactory (new NullTransportFactory ());
61
80
62
81
$ extension ->load ([[
63
82
'transport ' => [
83
+ 'default ' => 'null ' ,
64
84
'null ' => true ,
65
85
],
66
86
]], $ container );
67
87
88
+ self ::assertTrue ($ container ->hasAlias ('enqueue.transport.default.context ' ));
89
+ self ::assertEquals ('enqueue.transport.null.context ' , (string ) $ container ->getAlias ('enqueue.transport.default.context ' ));
90
+
68
91
self ::assertTrue ($ container ->hasDefinition ('enqueue.transport.null.context ' ));
69
92
$ context = $ container ->getDefinition ('enqueue.transport.null.context ' );
70
93
self ::assertEquals (NullContext::class, $ context ->getClass ());
71
94
}
72
95
73
- public function testShouldUseNullTransportAsDefault ()
96
+ public function testShouldUseNullTransportAsDefaultWhenExplicitlyConfigured ()
74
97
{
75
98
$ container = new ContainerBuilder ();
76
99
77
100
$ extension = new EnqueueExtension ();
78
- $ extension ->addTransportFactory (new NullTransportFactory ());
79
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
80
101
81
102
$ extension ->load ([[
82
103
'transport ' => [
@@ -120,7 +141,6 @@ public function testShouldUseFooTransportAsDefault()
120
141
121
142
$ extension = new EnqueueExtension ();
122
143
$ extension ->addTransportFactory (new FooTransportFactory ());
123
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
124
144
125
145
$ extension ->load ([[
126
146
'transport ' => [
@@ -144,7 +164,6 @@ public function testShouldLoadClientServicesWhenEnabled()
144
164
$ container = new ContainerBuilder ();
145
165
146
166
$ extension = new EnqueueExtension ();
147
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
148
167
$ extension ->addTransportFactory (new FooTransportFactory ());
149
168
150
169
$ extension ->load ([[
@@ -167,7 +186,6 @@ public function testShouldUseProducerByDefault()
167
186
$ container ->setParameter ('kernel.debug ' , false );
168
187
169
188
$ extension = new EnqueueExtension ();
170
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
171
189
$ extension ->addTransportFactory (new FooTransportFactory ());
172
190
173
191
$ extension ->load ([[
@@ -190,7 +208,6 @@ public function testShouldUseMessageProducerIfTraceableProducerOptionSetToFalseE
190
208
$ container ->setParameter ('kernel.debug ' , false );
191
209
192
210
$ extension = new EnqueueExtension ();
193
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
194
211
$ extension ->addTransportFactory (new FooTransportFactory ());
195
212
196
213
$ extension ->load ([[
@@ -215,7 +232,6 @@ public function testShouldUseTraceableMessageProducerIfTraceableProducerOptionSe
215
232
$ container ->setParameter ('kernel.debug ' , true );
216
233
217
234
$ extension = new EnqueueExtension ();
218
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
219
235
$ extension ->addTransportFactory (new FooTransportFactory ());
220
236
221
237
$ extension ->load ([[
@@ -250,7 +266,6 @@ public function testShouldLoadDelayRedeliveredMessageExtensionIfRedeliveredDelay
250
266
$ container ->setParameter ('kernel.debug ' , true );
251
267
252
268
$ extension = new EnqueueExtension ();
253
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
254
269
$ extension ->addTransportFactory (new FooTransportFactory ());
255
270
256
271
$ extension ->load ([[
@@ -276,7 +291,6 @@ public function testShouldNotLoadDelayRedeliveredMessageExtensionIfRedeliveredDe
276
291
$ container ->setParameter ('kernel.debug ' , true );
277
292
278
293
$ extension = new EnqueueExtension ();
279
- $ extension ->addTransportFactory (new DefaultTransportFactory ());
280
294
$ extension ->addTransportFactory (new FooTransportFactory ());
281
295
282
296
$ extension ->load ([[
0 commit comments