public static function createExpiredByTimeWorkflowInQueue(RedBeanModel $model, SavedWorkflow $savedWorkflow)
 {
     $byTimeWorkflowInQueue = new ByTimeWorkflowInQueue();
     $byTimeWorkflowInQueue->modelClassName = get_class($model);
     $byTimeWorkflowInQueue->modelItem = $model;
     $byTimeWorkflowInQueue->processDateTime = '2007-02-02 00:00:00';
     $byTimeWorkflowInQueue->savedWorkflow = $savedWorkflow;
     $saved = $byTimeWorkflowInQueue->save();
     assert($saved);
     // Not Coding Standard
     return $byTimeWorkflowInQueue;
 }
 public function testResolveToAddJobToQueueAfterSaveOfModelIsNotANewModelAndProcessDateTimeHasNotChanged()
 {
     $byTimeWorkflowInQueue = new ByTimeWorkflowInQueue();
     $byTimeWorkflowInQueue->modelClassName = get_class(self::$testModel);
     $byTimeWorkflowInQueue->modelItem = self::$testModel;
     $byTimeWorkflowInQueue->processDateTime = '2007-02-02 00:00:00';
     $byTimeWorkflowInQueue->savedWorkflow = self::$savedWorkflow;
     $saved = $byTimeWorkflowInQueue->save();
     $this->assertTrue($saved);
     Yii::app()->jobQueue->deleteAll();
     $this->assertCount(0, Yii::app()->jobQueue->getAll());
     InQueueUtil::resolveToAddJobToQueueAfterSaveOfModel($byTimeWorkflowInQueue, 'abc');
     $this->assertCount(0, Yii::app()->jobQueue->getAll());
 }
Пример #3
0
 /**
  * Special method to load ByTimeWorkflowInQueue models
  */
 public function actionLoadByTimeWorkflowInQueue()
 {
     if (!Group::isUserASuperAdministrator(Yii::app()->user->userModel)) {
         throw new NotSupportedException();
     }
     $model = new Account();
     $model->name = 'test account';
     $saved = $model->save();
     if (!$saved) {
         throw new NotSupportedException();
     }
     $savedWorkflow = new SavedWorkflow();
     $savedWorkflow->name = 'Test for demo Time Queue model';
     $savedWorkflow->description = 'description';
     $savedWorkflow->moduleClassName = 'AccountsModule';
     $savedWorkflow->triggerOn = Workflow::TRIGGER_ON_NEW;
     $savedWorkflow->type = Workflow::TYPE_BY_TIME;
     $savedWorkflow->isActive = false;
     $savedWorkflow->order = 1;
     $savedWorkflow->serializedData = serialize(array(ComponentForWorkflowForm::TYPE_TRIGGERS => array(), ComponentForWorkflowForm::TYPE_ACTIONS => array(), ComponentForWorkflowForm::TYPE_EMAIL_MESSAGES => array()));
     $saved = $savedWorkflow->save();
     if (!$saved) {
         throw new NotSupportedException();
     }
     for ($i = 1; $i < 6; $i++) {
         $byTimeWorkflowInQueue = new ByTimeWorkflowInQueue();
         $byTimeWorkflowInQueue->modelClassName = get_class($model);
         $byTimeWorkflowInQueue->modelItem = $model;
         $byTimeWorkflowInQueue->processDateTime = '2007-02-0' . $i . ' 00:00:00';
         $byTimeWorkflowInQueue->savedWorkflow = $savedWorkflow;
         $saved = $byTimeWorkflowInQueue->save();
         if (!$saved) {
             throw new NotSupportedException();
         }
     }
 }
 /**
  * @depends testResolveByWorkflowIdAndModel
  */
 public function testGetModelsToProcess($pageSize)
 {
     $this->assertEquals(1, ByTimeWorkflowInQueue::getCount());
     $models = ByTimeWorkflowInQueue::getModelsToProcess(10);
     $this->assertEquals(1, count($models));
     //Now have one that is not ready for processing. It should still only get 1
     $model = new WorkflowModelTestItem();
     $model->lastName = 'Green2';
     $model->string = 'string2';
     $saved = $model->save();
     $this->assertTrue($saved);
     $savedWorkflows = SavedWorkflow::getByName('some workflow2');
     $byTimeWorkflowInQueue = new ByTimeWorkflowInQueue();
     $byTimeWorkflowInQueue->modelClassName = get_class($model);
     $byTimeWorkflowInQueue->modelItem = $model;
     $byTimeWorkflowInQueue->processDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time() + 86400);
     $byTimeWorkflowInQueue->savedWorkflow = $savedWorkflows[0];
     $saved = $byTimeWorkflowInQueue->save();
     $this->assertTrue($saved);
     $models = ByTimeWorkflowInQueue::getModelsToProcess(10);
     $this->assertEquals(1, count($models));
 }