Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
5 / 5
CRAP
100.00% covered (success)
100.00%
1 / 1
Boolean
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
5 / 5
8
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
4
 __toString
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 raw
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 json
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 isset
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\Value;
6
7use Cosray\Field\Checkbox;
8use Cosray\Field\Field;
9use Cosray\Field\Owner;
10use Override;
11
12class Boolean extends Value
13{
14    public readonly ?bool $value;
15
16    public function __construct(Owner $owner, Field $field, ValueContext $context)
17    {
18        parent::__construct($owner, $field, $context);
19
20        $value = $this->value();
21
22        if (is_bool($value)) {
23            $this->value = $value;
24        } else {
25            $this->value = $field instanceof Checkbox && $field->nullable ? null : false;
26        }
27    }
28
29    #[Override]
30    public function __toString(): string
31    {
32        return (string) $this->value;
33    }
34
35    #[Override]
36    public function raw(): ?bool
37    {
38        return $this->value;
39    }
40
41    #[Override]
42    public function json(): mixed
43    {
44        return $this->value;
45    }
46
47    #[Override]
48    public function isset(): bool
49    {
50        return $this->value !== null;
51    }
52}