Passed
Push — master ( 4cb925...613187 )
by Marek
10:16
created

RemoveFinishedTicketTaskFactory::existsAndIsDone()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
ccs 2
cts 2
cp 1
rs 10
cc 2
eloc 2
nc 2
nop 1
crap 2
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace AppBuilder\Application\Module\TaskManager\Factory;
6
7
use AppBuilder\Application\Configuration\ValueObject\Parameters;
8
use AppBuilder\Application\Model\ValueObject\Ticket;
9
use AppBuilder\Application\Module\TaskManager\Exception\MisguidedTaskException;
10
use AppBuilder\Application\Module\TaskManager\Task\RemoveFinishedTicketTask;
11
use AppBuilder\Application\Utils\FileManager\FileManagerService;
12
13
class RemoveFinishedTicketTaskFactory
14
{
15
    /** @var int */
16
    public const PRIORITY = 30;
17
18
    /**
19
     * If application has 'Done' status, returns RemoveFinishedTicketTask.
20
     * Otherwise throws MisguidedTaskException.
21
     *
22
     * @throws MisguidedTaskException
23
     */
24 3
    public function create(
25
        Ticket $ticket,
26
        Parameters $applicationParams,
27
        FileManagerService $fileManager
28
    ) : RemoveFinishedTicketTask {
29 3
        if (!$this->existsAndIsDone($ticket)) {
30 2
            throw new MisguidedTaskException(RemoveFinishedTicketTask::class);
31
        }
32
33 1
        return new RemoveFinishedTicketTask($ticket, $applicationParams, $fileManager);
34
    }
35
36
    /**
37
     * Returns true if application has directory and its status is Done.
38
     */
39 3
    private function existsAndIsDone(Ticket $ticket) : bool
40
    {
41 3
        return $ticket->hasDirectory() && $ticket->isDone();
42
    }
43
}
44