forked from doctrine-extensions/DoctrineExtensions
-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e4c3a48
commit 86aa5c9
Showing
1 changed file
with
121 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
<?php | ||
|
||
namespace Gedmo\Uploadable\Mapping; | ||
|
||
use Gedmo\Uploadable\Mapping\Validator; | ||
|
||
/** | ||
* These are tests for the Mapping Validator of the Uploadable behavior | ||
* | ||
* @author Gustavo Falco <comfortablynumb84@gmail.com> | ||
* @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com> | ||
* @package Gedmo.Uploadable.Mapping | ||
* @link http://www.gediminasm.org | ||
* @license MIT License (http://www.opensource.org/licenses/mit-license.php) | ||
*/ | ||
|
||
class ValidatorTest extends \PHPUnit_Framework_TestCase | ||
{ | ||
protected $meta; | ||
|
||
public function setUp() | ||
{ | ||
$this->meta = $this->getMock('Doctrine\ORM\Mapping\ClassMetadata', array(), array(), '', false); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\InvalidMappingException | ||
*/ | ||
public function test_validateField_ifFieldIsNotOfAValidTypeThrowException() | ||
{ | ||
$this->meta->expects($this->once()) | ||
->method('getFieldMapping') | ||
->will($this->returnValue(array('type' => 'someType'))); | ||
|
||
Validator::validateField( | ||
$this->meta, | ||
'someField', | ||
Validator::UPLOADABLE_FILE_MIME_TYPE, | ||
Validator::$validFileMimeTypeTypes | ||
); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\UploadableInvalidPathException | ||
*/ | ||
public function test_validatePath_ifPathIsNotAStringOrIsAnEmptyStringThrowException() | ||
{ | ||
Validator::validatePath(''); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\UploadableCantWriteException | ||
*/ | ||
public function test_validatePath_ifPassedDirIsNotAValidDirectoryOrIsNotWriteableThrowException() | ||
{ | ||
Validator::validatePath('/invalid/directory/12312432423'); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\InvalidMappingException | ||
*/ | ||
public function test_validateConfiguration_ifFilePathFieldIsNotDefinedThrowException() | ||
{ | ||
Validator::validateConfiguration($this->meta, array('filePathField' => false)); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\InvalidMappingException | ||
*/ | ||
public function test_validateConfiguration_ifPathMethodIsNotAValidMethodThrowException() | ||
{ | ||
$this->meta->expects($this->once()) | ||
->method('getReflectionClass') | ||
->will($this->returnValue(new \ReflectionClass(new FakeEntity()))); | ||
|
||
Validator::validateConfiguration( | ||
$this->meta, | ||
array('filePathField' => 'someField', 'pathMethod' => 'invalidMethod') | ||
); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\InvalidMappingException | ||
*/ | ||
public function test_validateConfiguration_ifCallbackMethodIsNotAValidMethodThrowException() | ||
{ | ||
$this->meta->expects($this->once()) | ||
->method('getReflectionClass') | ||
->will($this->returnValue(new \ReflectionClass(new FakeEntity()))); | ||
|
||
Validator::validateConfiguration( | ||
$this->meta, | ||
array('filePathField' => 'someField', 'pathMethod' => '', 'callback' => 'invalidMethod') | ||
); | ||
} | ||
|
||
/** | ||
* @expectedException Gedmo\Exception\InvalidMappingException | ||
*/ | ||
public function test_validateConfiguration_ifFilenameGeneratorValueIsNotValidThrowException() | ||
{ | ||
$this->meta->expects($this->once()) | ||
->method('getReflectionClass') | ||
->will($this->returnValue(new \ReflectionClass(new FakeEntity()))); | ||
|
||
Validator::validateConfiguration( | ||
$this->meta, | ||
array( | ||
'fileMimeTypeField' => 'someField', | ||
'filePathField' => 'someField', | ||
'pathMethod' => '', | ||
'callback' => '', | ||
'filenameGenerator' => 'invalidClass' | ||
) | ||
); | ||
} | ||
} | ||
|
||
class FakeEntity | ||
{ | ||
} |