XMLDataSetLoader   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 10 2
A getParser() 0 3 1
A load() 0 5 1
A getResult() 0 3 1
1
<?php namespace BuildR\TestTools\DataSetLoader\XML;
2
3
use BuildR\TestTools\DataSetLoader\DataSetLoaderInterface;
4
use BuildR\TestTools\DataSetLoader\XML\Parser\StandardXMLDefinitionParser;
5
use BuildR\TestTools\DataSetLoader\XML\Parser\XMLDefinitionParserInterface;
6
7
/**
8
 * XML based date set parser
9
 *
10
 * BuildR PHP Framework
11
 *
12
 * @author Zoltán Borsos <[email protected]>
13
 * @package TestTools
14
 * @subpackage DataSetLoader\XML
15
 *
16
 * @copyright    Copyright 2016, Zoltán Borsos.
17
 * @license      https://github.com/BuildrPHP/Test-Tools/blob/master/LICENSE.md
18
 * @link         https://github.com/BuildrPHP/Test-Tools
19
 */
20
class XMLDataSetLoader implements DataSetLoaderInterface {
21
22
    /**
23
     * @type \BuildR\TestTools\DataSetLoader\XML\Parser\XMLDefinitionParserInterface
24
     */
25
    protected $parser;
26
27
    /**
28
     * @type string
29
     */
30
    protected $file;
31
32
    /**
33
     * @type \SimpleXMLElement
34
     */
35
    protected $xml;
36
37
    /**
38
     * XMLDataSetLoader constructor.
39
     *
40
     * @param string $file
41
     * @param \BuildR\TestTools\DataSetLoader\XML\Parser\XMLDefinitionParserInterface|NULL $parser
42
     */
43 5
    public function __construct($file, XMLDefinitionParserInterface $parser = NULL) {
44 5
        $this->file = $file;
45 5
        $this->parser = $parser;
46
47 5
        if($this->parser === NULL) {
48 5
            $this->parser = new StandardXMLDefinitionParser();
49 5
        }
50
51 5
        $this->load();
52 5
    }
53
54
    /**
55
     * Returns the current XML definition parser
56
     *
57
     * @return \BuildR\TestTools\DataSetLoader\XML\Parser\XMLDefinitionParserInterface
58
     */
59 4
    public function getParser() {
60 4
        return $this->parser;
61
    }
62
63
    /**
64
     * {@inheritdoc}
65
     */
66 5
    public function load() {
67 5
        $this->xml = simplexml_load_file($this->file);
68
69 5
        return $this;
70
    }
71
72
    /**
73
     * {@inheritdoc}
74
     */
75 4
    public function getResult() {
76 4
        return $this->parser->parse($this->xml);
77
    }
78
79
80
}
81