コード例 #1
0
 /**
  * @covers PrimitiveTypeDescription
  * @covers TypeDescription
  */
 public function testInstantiateAndCheck()
 {
     $typeDescription = new PrimitiveTypeDescription('string');
     self::assertTrue($typeDescription->isCompatible($object = 'some string'));
     self::assertFalse($typeDescription->isCompatible($object = 5));
     self::assertFalse($typeDescription->isCompatible($object = array(5)));
     self::assertEquals('string', $typeDescription->getTypeName());
     self::assertEquals('primitive::string', $typeDescription->getTypeDescription());
     $typeDescription = new PrimitiveTypeDescription('integer');
     self::assertTrue($typeDescription->isCompatible($object = 2));
     self::assertFalse($typeDescription->isCompatible($object = 'some string'));
     self::assertFalse($typeDescription->isCompatible($object = 5.5));
     self::assertFalse($typeDescription->isCompatible($object = new stdClass()));
     $typeDescription = new PrimitiveTypeDescription('float');
     self::assertTrue($typeDescription->isCompatible($object = 2.5));
     self::assertFalse($typeDescription->isCompatible($object = 'some string'));
     self::assertFalse($typeDescription->isCompatible($object = 5));
     $typeDescription = new PrimitiveTypeDescription('boolean');
     self::assertTrue($typeDescription->isCompatible($object = true));
     self::assertTrue($typeDescription->isCompatible($object = false));
     self::assertFalse($typeDescription->isCompatible($object = 1));
     self::assertFalse($typeDescription->isCompatible($object = ''));
     $typeDescription = new PrimitiveTypeDescription('integer[]');
     self::assertTrue($typeDescription->isCompatible($object = array(2)));
     self::assertTrue($typeDescription->isCompatible($object = array(2, 5)));
     self::assertFalse($typeDescription->isCompatible($object = 2));
     $typeDescription = new PrimitiveTypeDescription('integer[1]');
     self::assertTrue($typeDescription->isCompatible($object = array(2)));
     self::assertFalse($typeDescription->isCompatible($object = array(2, 5)));
     self::assertFalse($typeDescription->isCompatible($object = 2));
 }
コード例 #2
0
 /**
  * @see TypeDescription::checkType()
  */
 function checkType(&$object)
 {
     // Check primitive type.
     if (!parent::checkType($object)) {
         return false;
     }
     // Instantiate and call validator
     import('lib.pkp.classes.validation.' . $this->_validatorClassName);
     assert(class_exists($this->_validatorClassName));
     $validatorConstructorCode = 'return new ' . $this->_validatorClassName . '(' . $this->_validatorArgs . ');';
     $validator = eval($validatorConstructorCode);
     assert(is_a($validator, 'Validator'));
     // Validate the object
     if (!$validator->isValid($object)) {
         return false;
     }
     return true;
 }