Files
luos/tests/automated/workflow/engine/classes/classFieldValidatorTest.php
Victor Saisa Lopez 177e50ca39 ProcessMaker-MA "2184 Fields Validation Layer"
- Se ha implementado la clase "class.fieldValidator.php", la misma incluye metodos de validacion de valor de variables
- La clase "FieldValidator" valida valores como: numeros (int, real), cadenas (url, email, ip). Tambien valida valores
  por conjunto
- Se ha implementado las pruebas unitarias para esta clase en el archivo "classFieldValidatorTest.php"
2013-11-27 17:28:50 -04:00

278 lines
9.3 KiB
PHP

<?php
require_once PATH_TRUNK . 'gulliver/thirdparty/smarty/libs/Smarty.class.php';
require_once PATH_TRUNK . 'gulliver/system/class.xmlform.php';
require_once PATH_TRUNK . 'gulliver/system/class.xmlDocument.php';
require_once PATH_TRUNK . 'gulliver/system/class.form.php';
require_once PATH_TRUNK . 'gulliver/system/class.dbconnection.php';
require_once PATH_TRUNK . 'gulliver/thirdparty/propel/Propel.php';
require_once PATH_TRUNK . 'gulliver/thirdparty/creole/Creole.php';
require_once PATH_TRUNK . 'gulliver/thirdparty/pear/PEAR.php';
require_once PATH_TRUNK . 'workflow/engine/classes/class.fieldValidator.php';
/**
* Generated by ProcessMaker Test Unit Generator on 2013-11-27 at 10:49:43.
*/
class classFieldValidatorTest extends PHPUnit_Framework_TestCase
{
/**
* @var FieldValidator
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp()
{
$this->object = new FieldValidator();
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown()
{
}
/**
* This is the default method to test, if the class still having
* the same number of methods.
*/
public function testNumberOfMethodsInThisClass()
{
$methods = get_class_methods('FieldValidator');
$this->assertTrue( count($methods) == 7);
}
/**
* @covers FieldValidator::isInt
* @todo Implement testisInt().
*/
public function testisInt()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('isInt', $methods ), 'exists method isInt' );
$r = new ReflectionMethod('FieldValidator', 'isInt');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'num');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers FieldValidator::isReal
* @todo Implement testisReal().
*/
public function testisReal()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('isReal', $methods ), 'exists method isReal' );
$r = new ReflectionMethod('FieldValidator', 'isReal');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'num');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers FieldValidator::isBool
* @todo Implement testisBool().
*/
public function testisBool()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('isBool', $methods ), 'exists method isBool' );
$r = new ReflectionMethod('FieldValidator', 'isBool');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'bool');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers FieldValidator::isUrl
* @todo Implement testisUrl().
*/
public function testisUrl()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('isUrl', $methods ), 'exists method isUrl' );
$r = new ReflectionMethod('FieldValidator', 'isUrl');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'url');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers FieldValidator::isEmail
* @todo Implement testisEmail().
*/
public function testisEmail()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('isEmail', $methods ), 'exists method isEmail' );
$r = new ReflectionMethod('FieldValidator', 'isEmail');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'email');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers FieldValidator::isIp
* @todo Implement testisIp().
*/
public function testisIp()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('isIp', $methods ), 'exists method isIp' );
$r = new ReflectionMethod('FieldValidator', 'isIp');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'ip');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
}
/**
* @covers FieldValidator::validate
* @todo Implement testvalidate().
*/
public function testvalidate()
{
$methods = get_class_methods($this->object);
$this->assertTrue( in_array('validate', $methods ), 'exists method validate' );
$r = new ReflectionMethod('FieldValidator', 'validate');
$params = $r->getParameters();
$this->assertTrue( $params[0]->getName() == 'arrayData');
$this->assertTrue( $params[0]->isArray() == false);
$this->assertTrue( $params[0]->isOptional () == false);
$this->assertTrue( $params[1]->getName() == 'arrayDataValidators');
$this->assertTrue( $params[1]->isArray() == false);
$this->assertTrue( $params[1]->isOptional () == false);
}
/**
* @covers FieldValidator::isInt
*/
public function testIsIntAllCovers()
{
$this->assertTrue($this->object->isInt(55));
$this->assertTrue($this->object->isInt("55"));
$this->assertFalse($this->object->isInt(55.5));
$this->assertFalse($this->object->isInt("55.5"));
}
/**
* @covers FieldValidator::isReal
*/
public function testIsRealAllCovers()
{
$this->assertTrue($this->object->isReal(55));
$this->assertTrue($this->object->isReal("55"));
$this->assertTrue($this->object->isReal(55.5));
$this->assertTrue($this->object->isReal("55.5"));
$this->assertFalse($this->object->isInt(.5));
$this->assertFalse($this->object->isInt(".5"));
}
/**
* @covers FieldValidator::isBool
*/
public function testIsBoolAllCovers()
{
$this->assertTrue($this->object->isBool(true));
$this->assertTrue($this->object->isBool(false));
$this->assertTrue($this->object->isBool("true"));
$this->assertTrue($this->object->isBool("false"));
$this->assertFalse($this->object->isBool(1));
$this->assertFalse($this->object->isBool(0));
$this->assertFalse($this->object->isBool("1"));
$this->assertFalse($this->object->isBool("0"));
}
/**
* @covers FieldValidator::isEmail
*/
public function testIsEmailAllCovers()
{
$this->assertTrue($this->object->isEmail("my-email@gmail.com"));
$this->assertFalse($this->object->isEmail("my--email@gmail.com"));
}
/**
* @covers FieldValidator::isIp
*/
public function testIsIpAllCovers()
{
$this->assertTrue($this->object->isIp("127.0.0.1"));
$this->assertFalse($this->object->isIp("127.0.0"));
}
/**
*
*/
public function dataProviderTestValidateExceptionCovers()
{
return array(
array("", array(), false),
array(array(), "", false),
array(array(), array(1), false),
array(array(1), array(), false)
);
}
/**
* @covers FieldValidator::validate
* @dataProvider dataProviderTestValidateExceptionCovers
*/
public function testValidateExceptionCovers($arrayData, $arrayDataValidators, $success)
{
$result = $this->object->validate($arrayData, $arrayDataValidators);
$this->assertEquals($result["success"], $success);
}
/**
*
*/
public function dataProviderTestValidateRemainingCovers()
{
return array(
array(array("age" => 55.5), array("age" => array("type" => "int")), false),
array(array("pi" => "3_1416"), array("pi" => array("type" => "real")), false),
array(array("flag" => 1), array("flag" => array("type" => "bool")), false),
array(array("name" => "peter"), array("name" => array("type" => "string")), true),
array(array("email" => "my--email@gmail.com"), array("email" => array("validation" => "email")), false),
array(array("ip" => "127.0.0"), array("ip" => array("validation" => "ip")), false),
array(array("name" => "peter"), array("name" => array("min_size" => 6)), false),
array(array("name" => "peter"), array("firstname" => array("required" => true)), false)
);
}
/**
* @covers FieldValidator::validate
* @dataProvider dataProviderTestValidateRemainingCovers
*/
public function testValidateRemainingCovers($arrayData, $arrayDataValidators, $success)
{
$result = $this->object->validate($arrayData, $arrayDataValidators);
$this->assertEquals($result["success"], $success);
}
}