Test Failed
Push — master ( 614ce5...540a9b )
by Hannes
02:11
created

Engine::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 3
dl 0
loc 5
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\Parser\Parser;
9
10
/**
11
 * Test examples in file
12
 */
13
class Engine
14
{
15
    /**
16
     * @var Parser
17
     */
18
    private $parser;
19
20
    /**
21
     * @var ExampleFactory
22
     */
23
    private $exampleFactory;
24
25
    /**
26
     * @var ExampleTester
27
     */
28
    private $tester;
29
30
    public function __construct(Parser $parser, ExampleFactory $exampleFactory, ExampleTester $tester)
31
    {
32
        $this->parser = $parser;
33
        $this->exampleFactory = $exampleFactory;
34
        $this->tester = $tester;
35
    }
36
37
    public function registerListener(ListenerInterface $listener): void
38
    {
39
        $this->tester->registerListener($listener);
40
    }
41
42
    /**
43
     * Test examples in file
44
     */
45
    public function testFile(string $contents): void
46
    {
47
        foreach ($this->exampleFactory->createExamples(...$this->parser->parse($contents)) as $example) {
48
            $this->tester->testExample($example);
49
        }
50
    }
51
}
52