Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      100.00%  | 
      1 / 1  | 
              | 
      100.00%  | 
      5 / 5  | 
      CRAP |         | 
      100.00%  | 
      16 / 16  | 
     
| Chain |         | 
      100.00%  | 
      1 / 1  | 
              | 
      100.00%  | 
      5 / 5  | 
      8 |         | 
      100.00%  | 
      16 / 16  | 
     
| __construct |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      2 / 2  | 
     |||
| addConverter |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      2 / 2  | 
     |||
| addConverters |         | 
      100.00%  | 
      1 / 1  | 
      2 |         | 
      100.00%  | 
      4 / 4  | 
     |||
| fromUnixTime |         | 
      100.00%  | 
      1 / 1  | 
      2 |         | 
      100.00%  | 
      4 / 4  | 
     |||
| toUnixTime |         | 
      100.00%  | 
      1 / 1  | 
      2 |         | 
      100.00%  | 
      4 / 4  | 
     |||
| <?php | |
| namespace Popy\Calendar\Converter\UnixTimeConverter; | |
| use Popy\Calendar\Converter\Conversion; | |
| use Popy\Calendar\Converter\UnixTimeConverterInterface; | |
| use Popy\Calendar\ValueObject\DateRepresentation\Standard; | |
| class Chain implements UnixTimeConverterInterface | |
| { | |
| /** | |
| * Converter chain. | |
| * | |
| * @var array<UnixTimeConverterInterface> | |
| */ | |
| protected $converters = []; | |
| /** | |
| * Class constructor. | |
| * | |
| * @param iterable<UnixTimeConverterInterface> $converters Converter chain. | |
| */ | |
| public function __construct($converters = []) | |
| { | |
| $this->addConverters($converters); | |
| } | |
| /** | |
| * Adds a Converter to the chain. | |
| * | |
| * @param UnixTimeConverterInterface $converter | |
| */ | |
| public function addConverter(UnixTimeConverterInterface $converter) | |
| { | |
| $this->converters[] = $converter; | |
| return $this; | |
| } | |
| /** | |
| * Add converters to the chain. | |
| * | |
| * @param iterable<UnixTimeConverterInterface> $converters | |
| */ | |
| public function addConverters($converters) | |
| { | |
| foreach ($converters as $converter) { | |
| $this->addConverter($converter); | |
| } | |
| return $this; | |
| } | |
| /** | |
| * @inheritDoc | |
| */ | |
| public function fromUnixTime(Conversion $conversion) | |
| { | |
| foreach ($this->converters as $converter) { | |
| $converter->fromUnixTime($conversion); | |
| } | |
| } | |
| /** | |
| * @inheritDoc | |
| */ | |
| public function toUnixTime(Conversion $conversion) | |
| { | |
| foreach (array_reverse($this->converters) as $converter) { | |
| $converter->toUnixTime($conversion); | |
| } | |
| } | |
| } |