ResponseOath   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
c 2
b 0
f 0
lcom 1
cbo 2
dl 0
loc 44
ccs 13
cts 13
cp 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A getSocket() 0 4 1
A invoke() 0 9 1
1
<?php
2
3
4
namespace Beanie\Server;
5
6
7
use Beanie\Command\ResponseParser\ResponseParserInterface;
8
use Beanie\OathInterface;
9
10
class ResponseOath implements OathInterface
11
{
12
    /** @var Socket */
13
    protected $socket;
14
15
    /** @var Server */
16
    protected $server;
17
18
    /** @var ResponseParserInterface */
19
    protected $responseParser;
20
21
    /**
22
     * @param Socket $socket
23
     * @param Server $server
24
     * @param ResponseParserInterface $responseParser
25
     */
26 3
    public function __construct(Socket $socket, Server $server, ResponseParserInterface $responseParser)
27
    {
28 3
        $this->socket = $socket;
29 3
        $this->server = $server;
30 3
        $this->responseParser = $responseParser;
31 3
    }
32
33
    /**
34
     * @return resource
35
     */
36 1
    public function getSocket()
37
    {
38 1
        return $this->socket->getRaw();
39
    }
40
41
    /**
42
     * @return \Beanie\Command\Response
43
     */
44 2
    public function invoke()
45
    {
46 2
        $responseLine = $this->socket->readLine(Server::EOL);
47
48 2
        return $this->responseParser->parseResponse(
49 2
            substr($responseLine, 0, strlen($responseLine) - Server::EOL_LENGTH),
50 2
            $this->server
51 2
        );
52
    }
53
}
54