Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
50.00% covered (danger)
50.00%
1 / 2
CRAP
94.44% covered (success)
94.44%
17 / 18
Date
0.00% covered (danger)
0.00%
0 / 1
50.00% covered (danger)
50.00%
1 / 2
5.00
94.44% covered (success)
94.44%
17 / 18
 fromUnixTime
0.00% covered (danger)
0.00%
0 / 1
2.01
88.89% covered (warning)
88.89%
8 / 9
 toUnixTime
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
9 / 9
<?php
namespace Popy\Calendar\Converter\UnixTimeConverter;
use Popy\Calendar\Converter\Conversion;
use Popy\Calendar\Converter\UnixTimeConverterInterface;
use Popy\Calendar\ValueObject\DateRepresentation\Standard;
/**
 * Day in the year representation
 *
 * Fragment units are, usually, named as, and used as :
 * 0 => months (format symbols m, etc ...)
 *
 * Transversal units are, usually, named as and used as :
 * 0 => ISO 8601 year (format symbol o).
 * 1 => ISO 8601 week number (format symbol W)
 * 2 => ISO 8601 day index (format symbol N)
 */
class Date implements UnixTimeConverterInterface
{
    /**
     * @inheritDoc
     */
    public function fromUnixTime(Conversion $conversion)
    {
        if (null === $res = $conversion->getTo()) {
            return;
        }
        $from = $conversion->getFrom();
        $res = $res
            ->withUnixTime($from->getUnixTime())
            ->withUnixMicroTime($from->getUnixMicroTime())
            ->withTimezone($from->getTimezone())
        ;
        $conversion->setTo($res);
    }
    /**
     * @inheritDoc
     */
    public function toUnixTime(Conversion $conversion)
    {
        $input = $conversion->getTo();
        if (null === $input->getUnixTime()) {
            $input = $input->withUnixTime($conversion->getUnixTime());
        }
        if (null === $input->getUnixMicroTime()) {
            $input = $input->withUnixMicroTime($conversion->getUnixMicroTime());
        }
        $conversion->setTo($input);
    }
}