public function testWorkflowMessageInQueueProperlySavesWithoutTrashingRelatedModelItem() { $model = WorkflowTestHelper::createWorkflowModelTestItem('Jason', 'Green'); $savedWorkflow = WorkflowTestHelper::createByTimeSavedWorkflow(); $workflowMessageInQueue = WorkflowTestHelper::createExpiredWorkflowMessageInQueue($model, $savedWorkflow); $correctItemId = $workflowMessageInQueue->getClassId('Item'); $this->assertEquals((int) $correctItemId, (int) $workflowMessageInQueue->getClassId('Item')); $this->assertNotEquals((int) $model->getClassId('Item'), (int) $workflowMessageInQueue->getClassId('Item')); $modelId = $model->id; $queueId = $workflowMessageInQueue->id; RedBeanModelsCache::forgetAll(true); //simulates page change, required to confirm Item does not get trashed $workflowMessageInQueue = WorkflowMessageInQueue::getById($queueId); $deleted = $workflowMessageInQueue->delete(); $this->assertTrue($deleted); $model = WorkflowModelTestItem::getById($modelId); $this->assertTrue($model->getClassId('Item') > 0); }
public function testSetAndGet() { $model = new WorkflowModelTestItem(); $model->lastName = 'Green'; $model->string = 'string'; $saved = $model->save(); $this->assertTrue($saved); $savedWorkflow = new SavedWorkflow(); $savedWorkflow->name = 'some workflow'; $savedWorkflow->description = 'description'; $savedWorkflow->moduleClassName = 'moduleClassName'; $savedWorkflow->triggerOn = Workflow::TRIGGER_ON_NEW; $savedWorkflow->type = 'some type'; $savedWorkflow->serializedData = serialize(array('something')); $saved = $savedWorkflow->save(); $this->assertTrue($saved); $workflowMessageInQueue = new WorkflowMessageInQueue(); $workflowMessageInQueue->modelClassName = get_class($model); $workflowMessageInQueue->modelItem = $model; $workflowMessageInQueue->processDateTime = '2007-02-02 00:00:00'; $workflowMessageInQueue->savedWorkflow = $savedWorkflow; $workflowMessageInQueue->triggeredByUser = Yii::app()->user->userModel; $workflowMessageInQueue->serializedData = serialize(array('something')); $this->assertCount(0, Yii::app()->jobQueue->getAll()); $saved = $workflowMessageInQueue->save(); $this->assertTrue($saved); $jobs = Yii::app()->jobQueue->getAll(); $this->assertCount(1, $jobs); $id = $workflowMessageInQueue->id; $workflowMessageInQueue->forget(); //Retrieve and compare $workflowMessageInQueue = WorkflowMessageInQueue::getById($id); $this->assertEquals('WorkflowModelTestItem', $workflowMessageInQueue->modelClassName); $this->assertTrue($workflowMessageInQueue->modelItem->isSame($model)); $this->assertEquals('2007-02-02 00:00:00', $workflowMessageInQueue->processDateTime); $this->assertTrue($workflowMessageInQueue->savedWorkflow->isSame($savedWorkflow)); $this->assertTrue($workflowMessageInQueue->triggeredByUser->isSame(Yii::app()->user->userModel)); $this->assertEquals(serialize(array('something')), $workflowMessageInQueue->serializedData); }