/** * @param array $aProcessStepDefinition * @return ProcessStep * @throws \InvalidArgumentException */ public static function processStepFromDefinition(array $aProcessStepDefinition) { if (isset($aProcessStepDefinition['agent'])) { Assertion::isArray($aProcessStepDefinition['agent'], sprintf("The agent property of an ProcessStepDefinition must be an array: %s given in %s", Util::getType($aProcessStepDefinition['agent']), json_encode($aProcessStepDefinition))); return ProcessStep::fromAgentDescription(static::agentDescriptionFromDefinition($aProcessStepDefinition['agent'])); } else { if (isset($aProcessStepDefinition['role']) && isset($aProcessStepDefinition['action'])) { Assertion::isArray($aProcessStepDefinition['role'], sprintf("The role property of an ProcessStepDefinition must be an array: %s given in %s", Util::getType($aProcessStepDefinition['role']), json_encode($aProcessStepDefinition))); Assertion::isArray($aProcessStepDefinition['action'], sprintf("The action property of an ProcessStepDefinition must be an array: %s given in %s", Util::getType($aProcessStepDefinition['action']), json_encode($aProcessStepDefinition))); return ProcessStep::fromRoleAndActionDescription(static::roleDescriptionFromDefinition($aProcessStepDefinition['role']), static::actionDescriptionFromDefinition($aProcessStepDefinition['action'])); } else { throw new \InvalidArgumentException('Invalid ProcessStep. Missing agent or role and action properties'); } } }
protected function setUp() { $this->role = new RoleDescription(new RoleName('Testrole')); $this->actionDescription = ActionDescription::asQuery(new Name('testaction')); $this->processStepCollection = array(ProcessStep::fromRoleAndActionDescription($this->role, $this->actionDescription)); }
/** * @test */ public function is_not_same_value_as() { $processStep = ProcessStep::fromRoleAndActionDescription($this->role, $this->actionDescription); $otherProcessStep = ProcessStep::fromAgentDescription($this->agentDescription); $this->assertFalse($processStep->sameValueAs($otherProcessStep)); }