Passed
Pull Request — master (#9)
by Nicolas
03:16
created

InMemory::build()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 19
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 24
ccs 19
cts 19
cp 1
rs 8.9713
cc 2
eloc 16
nc 2
nop 4
crap 2
1
<?php
2
3
namespace Puzzle\AMQP\Messages;
4
5
use Puzzle\AMQP\Workers\MessageAdapter;
6
use Puzzle\AMQP\Messages\Bodies\NullBody;
7
8
class InMemory
9
{
10
    /**
11
     * @return \Puzzle\AMQP\ReadableMessage
12
     */
13 3
    public static function build($routingKey, Body $body = null, array $additionalHeaders = [], array $additionalAttributes = [])
14
    {
15 3
        if(! $body instanceof Body)
16 3
        {
17 1
            $body = new NullBody();
18 1
        }
19
20 3
        $attributes = array_merge([
21 3
            'content_type' => $body->getContentType(),
22 3
            'routing_key' => $routingKey,
23 3
            'content_encoding' => 'utf8',
24 3
            'message_id' => uniqid(true),
25 3
        ], $additionalAttributes);
26
27 3
        $attributes['headers'] = array_merge([
28 3
            'routing_key' => $routingKey,
29 3
            'app_id' => 'memory',
30 3
            'message_datetime' => date('Y-m-d H:i:s'),
31 3
        ], $additionalHeaders);
32
33 3
        return new MessageAdapter(
34 3
            new \Swarrot\Broker\Message($body->format(), $attributes)
35 3
        );
36
    }
37
}
38