<?php
namespace ssa\annotation;
use ssa\annotation\AnnotationUtil;
/**
* Description of AnnotationUtil
*
* @author thomas
*/
class AnnotationUtilTest extends \PHPUnit_Framework_TestCase
{
/**
* test le cas du type sans paramétres
* exemple :
* array
* date
* string
*/
public function testSplitParameterWithNoParameter() {
$return = AnnotationUtil::splitParameter('array');
$expected = array('array');
$this->assertEquals($expected, $return);
}
/**
* test le cas du type avec paramétres
* exemple :
* array(\test\FOO)
* \DateTime(d/m/Y)
*/
public function testSplitParameterWithWithParameter() {
$return = AnnotationUtil::splitParameter('array(\test\Foo)');
$expected = array('array', '\test\Foo');
$this->assertEquals($expected, $return);
$returnObject = AnnotationUtil::splitParameter('\DateTime(d/m/Y)');
$expectedObject = array('\DateTime', 'd/m/Y');
$this->assertEquals($expectedObject, $returnObject);
$returnArray = AnnotationUtil::splitParameter('array(array(int))');
$expectedArray = array('array', 'array', 'int');
$this->assertEquals($expectedArray, $returnArray);
}
/**
* test la lecture des paramétre dans un bloc de commentaire
*/
public function testGetMethodParameters() {
$types = AnnotationUtil::getMethodParameters('
/**
* test
*
* @param array $param1 with comment
* @param \DateTime ( d/m/y ) $param2
* @param mixed $param3
* @param array( \test\Foo ) $param4 le commentaire
*/
');
$expected = array(
'param1' => array('array'),
'param2' => array('\DateTime', 'd/m/y'),
'param3' => array('mixed'),
'param4' => array('array', '\test\Foo')
);
$this->assertEquals($expected, $types);
}
}
|