Skip to content

Commit c98c62d

Browse files
committed
#286 Add [lazy] configuration for RPC client, update documentation and tests
1 parent 80f5e68 commit c98c62d

File tree

6 files changed

+46
-12
lines changed

6 files changed

+46
-12
lines changed

DependencyInjection/Configuration.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ protected function addRpcClients(ArrayNodeDefinition $node)
244244
->scalarNode('connection')->defaultValue('default')->end()
245245
->booleanNode('expect_serialized_response')->defaultTrue()->end()
246246
->scalarNode('unserializer')->defaultValue('unserialize')->end()
247+
->booleanNode('lazy')->defaultFalse()->end()
247248
->end()
248249
->end()
249250
->end()

DependencyInjection/OldSoundRabbitMqExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ protected function loadRpcClients()
389389
{
390390
foreach ($this->config['rpc_clients'] as $key => $client) {
391391
$definition = new Definition('%old_sound_rabbit_mq.rpc_client.class%');
392-
$definition->setLazy(true);
392+
$definition->setLazy($client['lazy']);
393393
$definition
394394
->addTag('old_sound_rabbit_mq.rpc_client')
395395
->addMethodCall('initClient', array($client['expect_serialized_response']));

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,9 @@ Let's add a RPC client and server into the configuration:
370370
```yaml
371371
rpc_clients:
372372
integer_store:
373-
connection: default
374-
unserializer: json_decode
373+
connection: default #default: default
374+
unserializer: json_decode #default: unserialize
375+
lazy: true #default: false
375376
rpc_servers:
376377
random_int:
377378
connection: default
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
old_sound_rabbit_mq:
2+
enable_collector: true
3+
connections:
4+
foo_connection:
5+
host: foo_host
6+
port: 123
7+
user: foo_user
8+
password: foo_password
9+
vhost: /foo
10+
11+
rpc_clients:
12+
foo_client:
13+
connection: foo_connection
14+
unserializer: json_decode
15+
lazy_client:
16+
connection: default
17+
lazy: true
18+
19+
default_client:

Tests/DependencyInjection/Fixtures/test.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,6 @@ old_sound_rabbit_mq:
162162
type: direct
163163
callback: default_anon.callback
164164

165-
rpc_clients:
166-
foo_client:
167-
connection: foo_connection
168-
unserializer: json_decode
169-
170-
default_client:
171-
172165
rpc_servers:
173166
foo_server:
174167
connection: foo_connection

Tests/DependencyInjection/OldSoundRabbitMqExtensionTest.php

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ public function testDefaultAnonConsumerDefinition()
597597

598598
public function testFooRpcClientDefinition()
599599
{
600-
$container = $this->getContainer('test.yml');
600+
$container = $this->getContainer('rpc-clients.yml');
601601

602602
$this->assertTrue($container->has('old_sound_rabbit_mq.foo_client_rpc'));
603603
$definition = $container->getDefinition('old_sound_rabbit_mq.foo_client_rpc');
@@ -615,7 +615,7 @@ public function testFooRpcClientDefinition()
615615

616616
public function testDefaultRpcClientDefinition()
617617
{
618-
$container = $this->getContainer('test.yml');
618+
$container = $this->getContainer('rpc-clients.yml');
619619

620620
$this->assertTrue($container->has('old_sound_rabbit_mq.default_client_rpc'));
621621
$definition = $container->getDefinition('old_sound_rabbit_mq.default_client_rpc');
@@ -628,6 +628,26 @@ public function testDefaultRpcClientDefinition()
628628
),
629629
$definition->getMethodCalls()
630630
);
631+
$this->assertFalse($definition->isLazy());
632+
$this->assertEquals('%old_sound_rabbit_mq.rpc_client.class%', $definition->getClass());
633+
}
634+
635+
public function testLazyRpcClientDefinition()
636+
{
637+
$container = $this->getContainer('rpc-clients.yml');
638+
639+
$this->assertTrue($container->has('old_sound_rabbit_mq.lazy_client_rpc'));
640+
$definition = $container->getDefinition('old_sound_rabbit_mq.lazy_client_rpc');
641+
$this->assertEquals((string) $definition->getArgument(0), 'old_sound_rabbit_mq.connection.default');
642+
$this->assertEquals((string) $definition->getArgument(1), 'old_sound_rabbit_mq.channel.lazy_client');
643+
$this->assertEquals(
644+
array(
645+
array('initClient', array(true)),
646+
array('setUnserializer', array('unserialize'))
647+
),
648+
$definition->getMethodCalls()
649+
);
650+
$this->assertTrue($definition->isLazy());
631651
$this->assertEquals('%old_sound_rabbit_mq.rpc_client.class%', $definition->getClass());
632652
}
633653

0 commit comments

Comments
 (0)