/** * @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); }