/** * @param string $modelClassName * @param string $workflowType * @return array */ public static function getTypeValuesAndLabels($modelClassName, $workflowType) { assert('is_string($modelClassName)'); assert('is_string($workflowType)'); $data = array(); $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL_USER] = DynamicTriggeredModelUserWorkflowEmailMessageRecipientForm::getTypeLabel(); $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION_USER] = DynamicTriggeredModelRelationUserWorkflowEmailMessageRecipientForm::getTypeLabel(); $data[static::TYPE_STATIC_ROLE] = StaticRoleWorkflowEmailMessageRecipientForm::getTypeLabel(); $data[static::TYPE_DYNAMIC_TRIGGERED_BY_USER] = DynamicTriggeredByUserWorkflowEmailMessageRecipientForm::getTypeLabel(); $data[static::TYPE_STATIC_USER] = StaticUserWorkflowEmailMessageRecipientForm::getTypeLabel(); $data[static::TYPE_STATIC_ADDRESS] = StaticAddressWorkflowEmailMessageRecipientForm::getTypeLabel(); $data[static::TYPE_STATIC_GROUP] = StaticGroupWorkflowEmailMessageRecipientForm::getTypeLabel(); if (is_subclass_of($modelClassName, 'Contact') || $modelClassName == 'Contact') { $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL] = DynamicTriggeredModelWorkflowEmailMessageRecipientForm::getTypeLabel(); } $form = new DynamicTriggeredModelRelationWorkflowEmailMessageRecipientForm($modelClassName, $workflowType); $relationValuesAndLabels = $form->getRelationValuesAndLabels(); if (!empty($relationValuesAndLabels)) { $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION] = DynamicTriggeredModelRelationWorkflowEmailMessageRecipientForm::getTypeLabel(); } return $data; }
public function testMakeRecipientsForStaticGroup() { $group = new Group(); $group->name = 'some group'; $group->users->add(User::getById(self::$sarahUserId)); $group->users->add(User::getById(self::$bobbyUserId)); $saved = $group->save(); $this->assertTrue($saved); $form = new StaticGroupWorkflowEmailMessageRecipientForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE); $form->groupId = $group->id; $model = new WorkflowModelTestItem(); $recipients = $form->makeRecipients($model, Yii::app()->user->userModel); $this->assertEquals(2, count($recipients)); $this->assertEquals('sarah sarahson', $recipients[0]->toName); $this->assertEquals('*****@*****.**', $recipients[0]->toAddress); $this->assertEquals(self::$sarahUserId, $recipients[0]->personsOrAccounts[0]->id); $this->assertEquals('bobby bobbyson', $recipients[1]->toName); $this->assertEquals('*****@*****.**', $recipients[1]->toAddress); $this->assertEquals(self::$bobbyUserId, $recipients[1]->personsOrAccounts[0]->id); }