Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
17 / 17 |
| MandateProvider | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
5 | |
100.00% |
17 / 17 |
| endMandateDateTime | |
100.00% |
1 / 1 |
1 | |
100.00% |
7 / 7 |
|||
| startMandateDateTime | |
100.00% |
1 / 1 |
4 | |
100.00% |
10 / 10 |
|||
| <?php | |
| /* | |
| * This file is part of the Incipio package. | |
| * | |
| * (c) Théo FIDRY <theo.fidry@gmail.com> | |
| * | |
| * For the full copyright and license information, please view the LICENSE | |
| * file that was distributed with this source code. | |
| */ | |
| namespace ApiBundle\DataFixtures\Faker\Provider; | |
| use Faker\Provider\DateTime as FakerDateTimeProvider; | |
| /** | |
| * Faker provider for mandates. | |
| * | |
| * @see ApiBundle\Entity\Mandate | |
| * | |
| * @author Théo FIDRY <theo.fidry@gmail.com> | |
| */ | |
| class MandateProvider extends FakerDateTimeProvider | |
| { | |
| /** | |
| * Generate a datetime starting from the date given and on a period going from 3 month to 2 years. | |
| * | |
| * @param \DateTime $startDate | |
| * | |
| * @return \DateTime | |
| */ | |
| public function endMandateDateTime(\DateTime $startDate) | |
| { | |
| $year = (int) $startDate->format('Y'); | |
| $month = (int) $startDate->format('m'); | |
| $startDate = new \DateTime(); | |
| $startDate->setDate($year, $month + 3, 01); | |
| $endDate = new \DateTime(); | |
| $endDate->setDate($year + 2, $month, 01); | |
| return $this->dateTimeBetween($startDate, $endDate); | |
| } | |
| /** | |
| * Generate a datetime from the year given. | |
| * | |
| * @example | |
| * startMandateDateTime() -> DateTime('2015-05-30 19:28:21') | |
| * startMandateDateTime('now') -> DateTime('2015-05-29 22:30:48') | |
| * startMandateDateTime('2014') -> DateTime('2014-02-27 20:52:14') | |
| * startMandateDateTime(2012) -> DateTime('2012-08-23 11:47:02') | |
| * | |
| * @param string|int $year A year in integer or string format. If value is invalid, the current year is taken. | |
| * | |
| * @return \DateTime | |
| */ | |
| public function startMandateDateTime($year = 'now') | |
| { | |
| // Insure input value is taken as an integer | |
| if ('string' === gettype($year)) { | |
| $year = (int) $year; | |
| } | |
| // Check if the integer value is a year (and not before J.-C.), if not take this time's year | |
| if (1000 > $year || 10000 <= $year) { | |
| $now = new \DateTime(); | |
| $year = (int) $now->format('Y'); | |
| } | |
| $startDate = new \DateTime(sprintf('%d-01-01', $year)); | |
| $endDate = new \DateTime(sprintf('%d-12-31', $year)); | |
| return $this->dateTimeBetween($startDate, $endDate); | |
| } | |
| } |