Shanty_Mongo::createRequirement PHP Method

createRequirement() public static method

Create a requirement
public static createRequirement ( $name, $options = null ) : mixed
$name String Name of requirement
return mixed
    public static function createRequirement($name, $options = null)
    {
        // Match requirement name against regex's
        $requirements = array_reverse(static::$_requirementCreators);
        foreach ($requirements as $regex => $function) {
            $matches = array();
            preg_match($regex, $name, $matches);
            if (!empty($matches)) {
                return $function($matches, $options);
            }
        }
        return null;
    }

Usage Example

Esempio n. 1
0
 public function testRetrieveRequirements()
 {
     $requirement = Shanty_Mongo::retrieveRequirement('Validator:MongoId');
     $this->assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $requirement);
     $this->assertEquals('Shanty_Mongo_Validate_Class', get_class($requirement));
     $requirement = Shanty_Mongo::retrieveRequirement('Validator:Hostname');
     $this->assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $requirement);
     $this->assertEquals('Zend_Validate_Hostname', get_class($requirement));
     $this->assertTrue($requirement->isValid('google.com'));
     $requirement = Shanty_Mongo::retrieveRequirement('Validator:Hostname', Zend_Validate_Hostname::ALLOW_IP);
     $this->assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $requirement);
     $this->assertEquals('Zend_Validate_Hostname', get_class($requirement));
     $this->assertFalse($requirement->isValid('shantymongo.org'));
     $requirement = Shanty_Mongo::retrieveRequirement('Document:My_ShantyMongo_User');
     $this->assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $requirement);
     $this->assertEquals('Shanty_Mongo_Validate_Class', get_class($requirement));
     $user = $this->getMock('My_ShantyMongo_User');
     $this->assertTrue($requirement->isValid($user));
     $this->assertNull(Shanty_Mongo::createRequirement('Document:Class does not exist'));
     // even though we tested this with testCreateRequirement, we need to make sure the vars were passed through correctly
     $requirement = Shanty_Mongo::retrieveRequirement('Validator:InArray', array('one', 'two'));
     $this->assertInternalType(PHPUnit_Framework_Constraint_IsType::TYPE_OBJECT, $requirement);
     $this->assertEquals('Zend_Validate_InArray', get_class($requirement));
     $this->assertTrue($requirement->isValid('one'));
     $this->assertFalse($requirement->isValid('three'));
 }
All Usage Examples Of Shanty_Mongo::createRequirement