/** * @depends testCreateAndGetAutoresponderItemById */ public function testGetByProcessed() { for ($i = 0; $i < 5; $i++) { $time = DateTimeUtil::convertTimestampToDbFormatDateTime(strtotime('+1 day')); $processed = AutoresponderItem::NOT_PROCESSED; if ($i % 2) { $processed = AutoresponderItem::PROCESSED; } $autoresponderItem = new AutoresponderItem(); $autoresponderItem->processed = $processed; $autoresponderItem->processDateTime = $time; $this->assertTrue($autoresponderItem->unrestrictedSave()); } $autoresponderItems = AutoresponderItem::getAll(); $this->assertCount(7, $autoresponderItems); $processedItems = AutoresponderItem::getByProcessed(AutoresponderItem::PROCESSED); $this->assertCount(3, $processedItems); $notProcessedItems = AutoresponderItem::getByProcessed(AutoresponderItem::NOT_PROCESSED); $this->assertCount(4, $notProcessedItems); }
/** * @depends testRunWithCustomBatchSize */ public function testRunWithContactContainingPrimaryEmailOptedOut() { $unprocessedItems = AutoresponderItem::getByProcessed(0); $this->assertEmpty($unprocessedItems); $job = new AutoresponderQueueMessagesInOutboxJob(); $email = new Email(); $email->emailAddress = '*****@*****.**'; $email->optOut = true; $contact = ContactTestHelper::createContactByNameForOwner('contact 07', $this->user); $contact->primaryEmail = $email; $this->assertTrue($contact->save()); $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 08', 'description goes here', 'fromName', '*****@*****.**'); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList, $contact); $autoresponder = AutoresponderTestHelper::createAutoresponder('subject 08', '[[FIRST^NAME]]', '[[LAST^NAME]]', 1, Autoresponder::OPERATION_SUBSCRIBE, true, $marketingList); $processed = 0; $processDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time() - rand(10, 500)); $autoresponderItem = AutoresponderItemTestHelper::createAutoresponderItem($processed, $processDateTime, $autoresponder, $contact); $unprocessedItems = AutoresponderItem::getByProcessedAndAutoresponderId(0, $autoresponder->id); $this->assertCount(1, $unprocessedItems); $this->assertTrue($job->run()); $unprocessedItems = AutoresponderItem::getByProcessedAndAutoresponderId(0, $autoresponder->id); $this->assertCount(0, $unprocessedItems); $personId = $contact->getClassId('Person'); $activities = AutoresponderItemActivity::getByTypeAndModelIdAndPersonIdAndUrl(AutoresponderItemActivity::TYPE_SKIP, $autoresponderItem->id, $personId); $this->assertNotEmpty($activities); $this->assertCount(1, $activities); }