public function testGetPeriodsFromMonthWithNoBreaks()
 {
     $interval = new \DateInterval('P1D');
     $dates = $this->createDates(array());
     $creator = new DatePeriodCreator($dates, $interval);
     $periods = $creator->getPeriods();
     $this->assertInternalType('array', $periods);
     $this->assertCount(1, $periods);
     $this->assertInstanceOf('Hyper\\AdsBundle\\Helper\\DatePeriod', $periods[0]);
     $this->assertEquals('2013-03-01', $periods[0]->getStart()->format('Y-m-d'));
     $this->assertEquals('2013-03-30', $periods[0]->getEnd()->format('Y-m-d'));
 }
 /**
  * @param \Hyper\AdsBundle\Entity\Zone $zone
  * @param \DateTime $from
  * @param \DateTime $to
  *
  * @return \Hyper\AdsBundle\Helper\DatePeriod[]
  */
 public function getCommonDaysForZone(Zone $zone, \DateTime $from, \DateTime $to)
 {
     //przerobić na event po ipn:success
     //if (!$this->cache->contains(self::CACHE_ALL_PREFIX . $zone->getId())) {
     $this->warmUp($zone);
     //}
     $period = $this->getPeriodBetweenTwoDates($from, $to);
     $zoneId = $zone->getId();
     $commonDays = array();
     $oneDayInterval = new \DateInterval('P1D');
     foreach ($period as $date) {
         $dateString = $date->format(self::DATE_FORMAT);
         $cacheId = self::CACHE_PREFIX . $zoneId . '_' . $dateString;
         $value = $this->cache->fetch($cacheId);
         if (false !== $value && $value >= $this->maxBannersInZone) {
             $commonDays[$dateString] = $date;
         }
     }
     if (empty($commonDays)) {
         return array();
     }
     $datePeriodCreator = new DatePeriodCreator($commonDays, $oneDayInterval);
     return $datePeriodCreator->getPeriods();
 }