Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
DateIntervalFaker
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 supports
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 fakeFor
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2namespace Apie\Faker\Fakers;
3
4use Apie\Faker\Interfaces\ApieClassFaker;
5use DateInterval;
6use Faker\Generator;
7use ReflectionClass;
8
9/** @implements ApieClassFaker<DateInterval> */
10class DateIntervalFaker implements ApieClassFaker
11{
12    public function supports(ReflectionClass $class): bool
13    {
14        return $class->name === DateInterval::class;
15    }
16
17    public function fakeFor(Generator $generator, ReflectionClass $class): DateInterval
18    {
19        $interval = sprintf(
20            'P%dY%dM%dDT%dH%dM%dS',
21            $generator->numberBetween(0, 100),
22            $generator->numberBetween(0, 11),
23            $generator->numberBetween(0, 30),
24            $generator->numberBetween(0, 23),
25            $generator->numberBetween(0, 59),
26            $generator->numberBetween(0, 59)
27        );
28
29        return new DateInterval($interval);
30    }
31}