/** * {@inheritdoc} */ public function guessConstraints(AttributeInterface $attribute) { $constraints = array(); $options = array(); if ($maxSize = $attribute->getMaxFileSize()) { if ($maxSize == (int) $maxSize) { $maxSize = (int) $maxSize; $unit = self::MEGABYTE_UNIT; } else { $maxSize = intval($maxSize * self::KILOBYTE_MULTIPLIER); $unit = self::KILOBYTE_UNIT; } $options['maxSize'] = sprintf('%d%s', $maxSize, $unit); } if ($allowedExtensions = $attribute->getAllowedExtensions()) { $options['allowedExtensions'] = $allowedExtensions; } if ($options) { $constraints[] = new File($options); } return $constraints; }
function it_does_not_guess_file_with_invalid_maxsize(AttributeInterface $attribute) { $attribute->getMaxFileSize()->willReturn('not_a_numeric_value')->shouldBeCalled(); $attribute->getAllowedExtensions()->willReturn(null)->shouldBeCalled(); $constraints = $this->guessConstraints($attribute); $constraints->shouldReturn([]); $attribute->getMaxFileSize()->willReturn(0)->shouldBeCalled(); $constraints = $this->guessConstraints($attribute); $constraints->shouldReturn([]); }