function it_creates_a_project_passing_the_image(UserInterface $user, ParticipantFactory $participantFactory, ParticipantInterface $participant, WorkflowInterface $workflow, MediaUploaderInterface $uploader, MediaFactory $mediaFactory, MediaInterface $media) { $image = new UploadedFile('', '', null, null, 99, true); // Avoids file not found exception $participantFactory->create(Argument::type('Kreta\\Component\\Project\\Model\\Project'), $user, 'ROLE_ADMIN')->shouldBeCalled()->willReturn($participant); $mediaFactory->create($image)->shouldBeCalled()->willReturn($media); $uploader->upload($media)->shouldBeCalled(); $this->create($user, $workflow, false, $image)->shouldReturnAnInstanceOf('Kreta\\Component\\Project\\Model\\Project'); }
/** * {@inheritdoc} */ protected function handleFiles(FileBag $files, $project) { $image = $files->get('image'); if ($image instanceof UploadedFile) { $media = $this->mediaFactory->create($image); $this->uploader->upload($media); $project->setImage($media); } }
function it_handles_form_that_tests_handle_project_image(Request $request, ProjectInterface $project, FormFactory $formFactory, FormBuilderInterface $formBuilder, FormInterface $form, FileBag $fileBag, MediaFactory $mediaFactory, MediaInterface $media, ObjectManager $manager, MediaUploader $uploader) { $image = new UploadedFile('', '', null, null, 99, true); // Avoids file not found exception $formFactory->createNamedBuilder('', 'kreta_project_project_type', $project, [])->shouldBeCalled()->willReturn($formBuilder); $formBuilder->getForm()->shouldBeCalled()->willReturn($form); $request->isMethod('POST')->shouldBeCalled()->willReturn(true); $form->handleRequest($request)->shouldBeCalled(); $form->isValid()->shouldBeCalled()->willReturn(true); $fileBag->get('image')->shouldBeCalled()->willReturn($image); $request->files = $fileBag; $mediaFactory->create($image)->shouldBeCalled()->willReturn($media); $uploader->upload($media)->shouldBeCalled(); $project->setImage($media)->shouldBeCalled()->willReturn($project); $manager->persist($project)->shouldBeCalled(); $manager->flush()->shouldBeCalled(); $this->handleForm($request, $project, []); }
/** * 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); }