/**
  * @return UploadedFile
  */
 public function testConstructor()
 {
     $attr = ['tmp_name' => self::$filename, 'name' => 'my-avatar.txt', 'size' => 8, 'type' => 'text/plain', 'error' => 0];
     $uploadedFile = new UploadedFile($attr['tmp_name'], $attr['name'], $attr['type'], $attr['size'], $attr['error'], false);
     $this->assertEquals($attr['name'], $uploadedFile->getClientFilename());
     $this->assertEquals($attr['type'], $uploadedFile->getClientMediaType());
     $this->assertEquals($attr['size'], $uploadedFile->getSize());
     $this->assertEquals($attr['error'], $uploadedFile->getError());
     return $uploadedFile;
 }
Exemple #2
0
 /**
  * Validates a product and the relative uploaded file
  * Eventually sets the model's success and error messages (if any)
  * @param Product $product
  * @param UploadedFile $uploadedFile
  * @param ProductCreationModel $model
  */
 private function validateProduct(Product $product, UploadedFile $uploadedFile, ProductCreationModel $model)
 {
     // Validation rules:
     // Product must have a name
     // Product must have at least one tag
     // (extra) Product image, if present, must be an image (gif, png, jpeg)
     if (!$product->getName()) {
         $model->appendMessage("The product's name mustn't be empty!");
     }
     if (!$product->getTags()) {
         $model->appendMessage("The product must have at least one tag!");
     }
     if ($uploadedFile->getSize() && !in_array($uploadedFile->getClientMediaType(), static::$supportedImageMIMETYpes)) {
         $model->appendMessage("The product's image file is invalid (wrong type)!");
     }
     // if the model's messages are empty, validation passed
     $model->setIsSuccess(!$model->getMessages());
 }