Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
ToolsHandler
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 apply
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 properties
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Field\Schema;
6
7use Cosray\Exception\RuntimeException;
8use Cosray\Field\Capability\ToolsAware;
9use Cosray\Field\Field;
10
11class ToolsHandler extends Handler
12{
13    public function apply(object $meta, Field $field): void
14    {
15        if ($field instanceof ToolsAware) {
16            $field->tools(...$meta->tools);
17
18            return;
19        }
20
21        throw new RuntimeException($this->capabilityErrorMessage($field, ToolsAware::class));
22    }
23
24    public function properties(object $meta, Field $field): array
25    {
26        // The field emits the resolved list itself, so fields without the
27        // attribute carry their `tools` property too.
28        return [];
29    }
30}