Test Failed
Push — master ( b1e763...e9b74b )
by Hannes
02:19
created

EngineFactory::createEngine()   A

Complexity

Conditions 3
Paths 1

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 9
nc 1
nop 2
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace hanneskod\readmetester;
6
7
use hanneskod\readmetester\Example\ExampleFactory;
8
use hanneskod\readmetester\Example\FilterInterface;
9
use hanneskod\readmetester\Example\NullFilter;
10
use hanneskod\readmetester\Parser\Parser;
11
use hanneskod\readmetester\Expectation\ExpectationEvaluator;
12
use hanneskod\readmetester\Expectation\ExpectationFactory;
13
use hanneskod\readmetester\Runner\RunnerInterface;
14
use hanneskod\readmetester\Runner\EvalRunner;
15
16
// TODO rewrite as a builder...
17
class EngineFactory
18
{
19
    private $runner;
20
21
    public function setRunner(RunnerInterface $runner)
22
    {
23
        $this->runner = $runner;
24
    }
25
26
    public function createEngine(FilterInterface $filter = null, bool $ignoreUnknownAnnotations = false): Engine
27
    {
28
        return new Engine(
29
            new Parser,
30
            new ExampleFactory(
31
                new ExpectationFactory,
32
                $filter ?: new NullFilter,
33
                $ignoreUnknownAnnotations
34
            ),
35
            new ExampleTester(
36
                $this->runner ?: new EvalRunner,
37
                new ExpectationEvaluator
38
            )
39
        );
40
    }
41
}
42