Total Complexity | 13 |
Total Lines | 49 |
Duplicated Lines | 0 % |
Coverage | 90% |
Changes | 0 |
1 | <?php |
||
6 | class Validator |
||
7 | { |
||
8 | /** |
||
9 | * @param $options |
||
10 | * @throws InvalidArgumentException |
||
11 | */ |
||
12 | 5 | public function validateArguments($options) |
|
13 | { |
||
14 | 5 | $required = []; |
|
15 | 5 | foreach($options as $option) { |
|
16 | 5 | if(isset($option['required']) && $option['required'] && !isset($parsed[$option['name']])) { |
|
|
|||
17 | 5 | $required[] = $option['name']; |
|
18 | } |
||
19 | } |
||
20 | |||
21 | 5 | if(!empty(($required))) { |
|
22 | throw new InvalidArgumentException( |
||
23 | sprintf("The following options are required: %s. Pass the --help option for more information about possible options.", implode(", $required")) |
||
24 | ); |
||
25 | } |
||
26 | 5 | } |
|
27 | |||
28 | /** |
||
29 | * @throws InvalidArgumentDescriptionException |
||
30 | * @throws UnknownCommandException |
||
31 | */ |
||
32 | 14 | public function validateOption($option, $commands) |
|
33 | { |
||
34 | 14 | if (!isset($option['name'])) { |
|
35 | 1 | throw new InvalidArgumentDescriptionException("Argument must have a name"); |
|
36 | } |
||
37 | 13 | if (isset($option['command']) && !isset($commands[$option['command']])) { |
|
38 | 1 | throw new UnknownCommandException("The command {$option['command']} is unknown"); |
|
39 | } |
||
40 | 13 | } |
|
41 | |||
42 | /** |
||
43 | * @param $command |
||
44 | * @param $commands |
||
45 | * @throws CommandExistsException |
||
46 | * @throws InvalidArgumentDescriptionException |
||
47 | */ |
||
48 | 5 | public function validateCommand($command, $commands) |
|
55 | } |
||
56 | } |
||
57 | } |