mageekguy\atoum\configurator: lines coverage

80% of 151

OPs

100% of 23

Lines

66% of 29

Branches

46% of 13

Paths
Method OPs OPs % Lines Line % Branches Branches % Paths Path %
mageekguy\atoum\configurator::__construct() 48 42% 8 100% 11 36% 5 0%
mageekguy\atoum\configurator::__call() 97 98% 14 100% 17 82% 7 71%
mageekguy\atoum\configurator::getScript() 6 100% 1 100% 1 100% 1 100%
#
1
<?php
2

                    
3
namespace mageekguy\atoum;
4

                    
5
class configurator
6
{
7
	protected $script = null;
8
	protected $methods = array();
9

                    
10
	public function __construct(scripts\runner $script)100%
11
	{
12
		$this->script = $script;
13

                    
14
		foreach ($this->script->getHelp() as $help)
15
		{
16
			list($arguments, $values) = $help;
17

                    
18
			foreach ($arguments as $argument)
19
			{
20
				$this->methods[strtolower(str_replace('-', '', $argument))] = $argument;
21
			}
22
		}
23
	}
24

                    
25
	public function __call($method, $arguments)100%
26
	{
27
		$keyMethod = strtolower($method);
28

                    
29
		if (isset($this->methods[$keyMethod]) === true)
30
		{
31
			if (isset($arguments[0]) === true && is_array($arguments[0]) === true)
32
			{
33
				$arguments = $arguments[0];
34
			}
35

                    
36
			$this->script->getArgumentsParser()->invokeHandlers($this->script, $this->methods[$keyMethod], $arguments);
37

                    
38
			return $this;
39
		}
40
		else
41
		{
42
			if (method_exists($this->script, $keyMethod) === false)
43
			{
44
				throw new exceptions\runtime\unexpectedValue('Method \'' . $method . '\' is unavailable');
45
			}
46

                    
47
			$return = call_user_func_array(array($this->script, $keyMethod), $arguments);
48

                    
49
			return ($return === $this->script ? $this : $return);
50
		}
51
	}
52

                    
53
	public function getScript()100%
54
	{
55
		return $this->script;
56
	}
57
}