Skip to content

Commit 972bf58

Browse files
committed
Added tests for serialize/unserialize function
1 parent dc24ef2 commit 972bf58

File tree

5 files changed

+72
-3
lines changed

5 files changed

+72
-3
lines changed

Tests/DependencyInjection/Fixtures/test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,15 @@ old_sound_rabbit_mq:
147147
rpc_clients:
148148
foo_client:
149149
connection: foo_connection
150+
unserializer: json_decode
150151

151152
default_client:
152153

153154
rpc_servers:
154155
foo_server:
155156
connection: foo_connection
156157
callback: foo_server.callback
158+
serializer: json_encode
157159

158160
default_server:
159161
callback: default_server.callback

Tests/DependencyInjection/OldSoundRabbitMqExtensionTest.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,10 @@ public function testFooRpcClientDefinition()
473473
$this->assertEquals((string) $definition->getArgument(0), 'old_sound_rabbit_mq.connection.foo_connection');
474474
$this->assertEquals((string) $definition->getArgument(1), 'old_sound_rabbit_mq.channel.foo_client');
475475
$this->assertEquals(
476-
array(array('initClient', array(true))),
476+
array(
477+
array('initClient', array(true)),
478+
array('setUnserializer', array('json_decode'))
479+
),
477480
$definition->getMethodCalls()
478481
);
479482
$this->assertEquals('%old_sound_rabbit_mq.rpc_client.class%', $definition->getClass());
@@ -488,7 +491,10 @@ public function testDefaultRpcClientDefinition()
488491
$this->assertEquals((string) $definition->getArgument(0), 'old_sound_rabbit_mq.connection.default');
489492
$this->assertEquals((string) $definition->getArgument(1), 'old_sound_rabbit_mq.channel.default_client');
490493
$this->assertEquals(
491-
array(array('initClient', array(true))),
494+
array(
495+
array('initClient', array(true)),
496+
array('setUnserializer', array('unserialize'))
497+
),
492498
$definition->getMethodCalls()
493499
);
494500
$this->assertEquals('%old_sound_rabbit_mq.rpc_client.class%', $definition->getClass());
@@ -505,6 +511,7 @@ public function testFooRpcServerDefinition()
505511
$this->assertEquals(array(
506512
array('initServer', array('foo_server')),
507513
array('setCallback', array(array(new Reference('foo_server.callback'), 'execute'))),
514+
array('setSerializer', array('json_encode')),
508515
),
509516
$definition->getMethodCalls()
510517
);
@@ -522,6 +529,7 @@ public function testDefaultRpcServerDefinition()
522529
$this->assertEquals(array(
523530
array('initServer', array('default_server')),
524531
array('setCallback', array(array(new Reference('default_server.callback'), 'execute'))),
532+
array('setSerializer', array('serialize')),
525533
),
526534
$definition->getMethodCalls()
527535
);
@@ -550,6 +558,7 @@ public function testRpcServerWithQueueOptionsDefinition()
550558
'ticket' => null,
551559
'routing_keys' => array(),
552560
))),
561+
array('setSerializer', array('serialize')),
553562
),
554563
$definition->getMethodCalls()
555564
);

Tests/RabbitMq/RpcClientTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace OldSound\RabbitMqBundle\Tests\RabbitMq;
4+
5+
use OldSound\RabbitMqBundle\RabbitMq\RpcClient;
6+
7+
class RpcClientTest extends \PHPUnit_Framework_TestCase
8+
{
9+
public function testProcessMessageWithCustomUnserializer()
10+
{
11+
/** @var RpcClient $client */
12+
$client = $this->getMockBuilder('\OldSound\RabbitMqBundle\RabbitMq\RpcClient')
13+
->setMethods(array('sendReply', 'maybeStopConsumer'))
14+
->disableOriginalConstructor()
15+
->getMock();
16+
$message = $this->getMock('\PhpAmqpLib\Message\AMQPMessage', array('get'), array('message'));
17+
$serializer = $this->getMock('\Symfony\Component\Serializer\SerializerInterface', array('serialize', 'deserialize'));
18+
$serializer->expects($this->once())->method('deserialize')->with('message', 'json', null);
19+
$client->initClient(true);
20+
$client->setUnserializer(function($data) use ($serializer) {
21+
$serializer->deserialize($data, 'json', null);
22+
});
23+
$client->processMessage($message);
24+
}
25+
}

Tests/RabbitMq/RpcServerTest.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace OldSound\RabbitMqBundle\Tests\RabbitMq;
4+
5+
use OldSound\RabbitMqBundle\RabbitMq\RpcServer;
6+
use PhpAmqpLib\Message\AMQPMessage;
7+
8+
class RpcServerTest extends \PHPUnit_Framework_TestCase
9+
{
10+
public function testProcessMessageWithCustomSerializer()
11+
{
12+
/** @var RpcServer $server */
13+
$server = $this->getMockBuilder('\OldSound\RabbitMqBundle\RabbitMq\RpcServer')
14+
->setMethods(array('sendReply', 'maybeStopConsumer'))
15+
->disableOriginalConstructor()
16+
->getMock();
17+
$message = $this->getMock('\PhpAmqpLib\Message\AMQPMessage', array('get'));
18+
$message->delivery_info = array(
19+
'channel' => $this->getMock('\PhpAmqpLib\Channel\AMQPChannel', array(), array(), '', false),
20+
'delivery_tag' => null
21+
);
22+
$server->setCallback(function() {
23+
return 'message';
24+
});
25+
$serializer = $this->getMock('\Symfony\Component\Serializer\SerializerInterface', array('serialize', 'deserialize'));
26+
$serializer->expects($this->once())->method('serialize')->with('message', 'json');
27+
$server->setSerializer(function($data) use ($serializer) {
28+
$serializer->serialize($data, 'json');
29+
});
30+
$server->processMessage($message);
31+
}
32+
}

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"videlalvaro/php-amqplib" : "~2.4.0"
1515
},
1616
"require-dev": {
17-
"symfony/console": "~2.0"
17+
"symfony/console": "~2.0",
18+
"symfony/serializer": "~2.6"
1819
},
1920
"extra": {
2021
"branch-alias": {

0 commit comments

Comments
 (0)