Passed
Pull Request — master (#37)
by Nicolas
03:21
created

Standard::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Puzzle\AMQP\Messages\BodyFactories;
4
5
use Psr\Log\LoggerAwareTrait;
6
use Psr\Log\NullLogger;
7
use Puzzle\AMQP\Messages\TypedBodyFactories;
8
use Puzzle\AMQP\Messages\BodyFactory;
9
use Puzzle\AMQP\Messages\ContentType;
10
use Puzzle\AMQP\Messages\Bodies\NullBody;
11
12
class Standard implements BodyFactory
13
{
14
    use LoggerAwareTrait;
15
    
16
    private
17
        $factories;
18
    
19 30
    public function __construct()
20
    {
21 30
        $this->logger = new NullLogger();
22 30
        $this->initializeFactories();
23 30
    }
24
    
25 30
    private function initializeFactories()
26
    {
27 30
        $this->factories = [
28 30
            ContentType::TEXT => new TypedBodyFactories\Text(),
29 30
            ContentType::JSON => new TypedBodyFactories\Json(),
30 30
            ContentType::BINARY => new TypedBodyFactories\Binary(),
31
        ];
32 30
    }
33
    
34 21
    public function build($contentType, $contentAsTransported)
35
    {
36 21
        if(isset($this->factories[$contentType]))
37 21
        {
38 17
            return $this->factories[$contentType]->build($contentAsTransported);
39
        }
40
        
41 5
        $this->logger->warning(__CLASS__ . ": unknown content-type, use empty body");
42
        
43 5
        return new NullBody();
44
    }
45
}
46