/** * @param User $userToSendTo * @param MessageLogger $messageLogger */ public function run(User $userToSendTo, $messageLogger) { MonitorJob::makeJobStuckNotification(array('Process Outbound Email Job', 'Process Inbound Email Job')); $messageLogger->addInfoMessage('Sending a job is stuck message'); JobsManagerUtil::makeMonitorStuckJobNotification(); $messageLogger->addInfoMessage('Sending monitor job stuck message'); //Clear out notifications for super user $searchAttributeData = array(); $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'owner', 'relatedAttributeName' => 'id', 'operatorType' => 'equals', 'value' => Yii::app()->user->userModel->id)); $searchAttributeData['structure'] = '1'; $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('Notification'); $where = RedBeanModelDataProvider::makeWhere('Notification', $searchAttributeData, $joinTablesAdapter); $models = Notification::getSubset($joinTablesAdapter, null, null, $where, null); foreach ($models as $model) { $model->delete(); } }
public function testMakeMonitorStuckJobNotification() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $super->primaryEmail->emailAddress = '*****@*****.**'; $this->assertTrue($super->save()); $notificationInitalCount = Notification::getCount(); $emailMessageInitialCount = EmailMessage::getCount(); JobsManagerUtil::makeMonitorStuckJobNotification(); $notifications = Notification::getAll(); $emailMessages = EmailMessage::getAll(); $this->assertCount($emailMessageInitialCount + 1, $notifications); $this->assertCount($notificationInitalCount + 1, $emailMessages); $this->assertEquals('The monitor job is stuck.', $notifications[0]->notificationMessage->htmlContent); $this->assertEquals('The monitor job is stuck.', $notifications[0]->notificationMessage->textContent); $this->assertContains('The monitor job is stuck.', $emailMessages[0]->content->htmlContent); $this->assertContains('The monitor job is stuck.', $emailMessages[0]->content->textContent); }