Пример #1
0
 /**
  * @depends testGetByProcessedAndAutoresponderId
  */
 public function testGetByProcessedAndAutoresponderIdAndTime()
 {
     $intervals = array('hour', 'day');
     $marketingList = MarketingList::getByName('marketingList 01');
     $this->assertNotEmpty($marketingList);
     $autoresponder3 = AutoresponderTestHelper::createAutoresponder('autoresponder 03', 'subject 03', 'text 03', 'html 03', 10, Autoresponder::OPERATION_UNSUBSCRIBE, $marketingList[0]);
     $this->assertNotNull($autoresponder3);
     $autoresponder4 = AutoresponderTestHelper::createAutoresponder('autoresponder 04', 'subject 04', 'text 04', 'html 04', 20, Autoresponder::OPERATION_SUBSCRIBE, $marketingList[0]);
     $this->assertNotNull($autoresponder4);
     for ($i = 0; $i < 10; $i++) {
         if ($i % 3) {
             $pastOrFuture = "-";
             $processed = AutoresponderItem::PROCESSED;
         } else {
             $pastOrFuture = "+";
             $processed = AutoresponderItem::NOT_PROCESSED;
         }
         if ($i % 2) {
             $autoresponder = $autoresponder3;
             $interval = $intervals[1];
         } else {
             $autoresponder = $autoresponder4;
             $interval = $intervals[0];
         }
         $timestamp = strtotime($pastOrFuture . ($i + 1) . ' ' . $interval);
         $time = DateTimeUtil::convertTimestampToDbFormatDateTime($timestamp);
         $autoresponderItem = AutoresponderItemTestHelper::createAutoresponderItem($processed, $time, $autoresponder);
         $this->assertNotNull($autoresponderItem);
     }
     $autoresponderItems = AutoresponderItem::getAll();
     $this->assertCount(37, $autoresponderItems);
     $autoresponder3ProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder3->id);
     $this->assertNotEmpty($autoresponder3ProcessedBeforeNow);
     $this->assertCount(3, $autoresponder3ProcessedBeforeNow);
     $autoresponder3ProcessedFiveDaysAgo = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder3->id, strtotime("-5 day"));
     $this->assertNotEmpty($autoresponder3ProcessedFiveDaysAgo);
     $this->assertCount(2, $autoresponder3ProcessedFiveDaysAgo);
     $autoresponder3NotProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder3->id);
     $this->assertEmpty($autoresponder3NotProcessedBeforeNow);
     $autoresponder3NotProcessedFiveDaysFromNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder3->id, strtotime("+5 day"));
     $this->assertNotEmpty($autoresponder3NotProcessedFiveDaysFromNow);
     $this->assertCount(1, $autoresponder3NotProcessedFiveDaysFromNow);
     $autoresponder4ProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder4->id);
     $this->assertNotEmpty($autoresponder4ProcessedBeforeNow);
     $this->assertCount(3, $autoresponder4ProcessedBeforeNow);
     $autoresponder4ProcessedFiveDaysAgo = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::PROCESSED, $autoresponder4->id, strtotime("-5 day"));
     $this->assertEmpty($autoresponder4ProcessedFiveDaysAgo);
     $autoresponder4NotProcessedBeforeNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder4->id);
     $this->assertEmpty($autoresponder4NotProcessedBeforeNow);
     $autoresponder4NotProcessedFiveDaysFromNow = AutoresponderItem::getByProcessedAndAutoresponderIdWithProcessDateTime(AutoresponderItem::NOT_PROCESSED, $autoresponder4->id, strtotime("+5 day"));
     $this->assertNotEmpty($autoresponder4NotProcessedFiveDaysFromNow);
     $this->assertCount(2, $autoresponder4NotProcessedFiveDaysFromNow);
 }