/** * Creates an instance of a project. * * @param \Kreta\Component\User\Model\Interfaces\UserInterface $user The project creator * @param \Kreta\Component\Workflow\Model\Interfaces\WorkflowInterface|null $workflow The workflow * @param boolean $load Load boolean, by default true * @param \Symfony\Component\HttpFoundation\File\UploadedFile $image The image, can be null * * @return \Kreta\Component\Project\Model\Interfaces\ProjectInterface */ public function create(UserInterface $user, WorkflowInterface $workflow = null, $load = true, UploadedFile $image = null) { $project = new $this->className(); $participant = $this->participantFactory->create($project, $user, 'ROLE_ADMIN'); if (!$workflow instanceof WorkflowInterface) { $workflow = $this->workflowFactory->create(self::DEFAULT_WORKFLOW_NAME, $user, true); } if ($load) { $project = $this->loadPrioritiesAndTypes($project); } if ($image instanceof UploadedFile) { $media = $this->mediaFactory->create($image); $this->uploader->upload($media); $project->setImage($media); } return $project->addParticipant($participant)->setWorkflow($workflow); }
function it_creates_a_project_without_workflow_but_with_projects_defaults(UserInterface $user, ParticipantFactory $participantFactory, ParticipantInterface $participant, WorkflowFactory $workflowFactory, WorkflowInterface $workflow) { $participantFactory->create(Argument::type('Kreta\\Component\\Project\\Model\\Project'), $user, 'ROLE_ADMIN')->shouldBeCalled()->willReturn($participant); $workflowFactory->create('Default KRETA workflow', $user, true)->shouldBeCalled()->willReturn($workflow); $this->create($user, null, true)->shouldReturnAnInstanceOf('Kreta\\Component\\Project\\Model\\Project'); }