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); | |
} | |
} |