/**
  * The constructor.
  * @param ref object $configuration A {@link Properties} Properties with configuration for connection.
  * @access public
  * @return void 
  **/
 function LDAPConnector($configuration)
 {
     $this->_configuration = $configuration;
     // Validate the configuration options we use:
     ArgumentValidator::validate($this->_configuration->getProperty('LDAPHost'), FieldRequiredValidatorRule::getRule());
     ArgumentValidator::validate($this->_configuration->getProperty('LDAPPort'), OptionalRule::getRule(NumericValidatorRule::getRule()));
     ArgumentValidator::validate($this->_configuration->getProperty('UserBaseDN'), FieldRequiredValidatorRule::getRule());
     ArgumentValidator::validate($this->_configuration->getProperty('ClassesBaseDN'), FieldRequiredValidatorRule::getRule());
     ArgumentValidator::validate($this->_configuration->getProperty('GroupBaseDN'), FieldRequiredValidatorRule::getRule());
     ArgumentValidator::validate($this->_configuration->getProperty('bindDN'), OptionalRule::getRule(StringValidatorRule::getRule()));
     ArgumentValidator::validate($this->_configuration->getProperty('bindDNPassword'), OptionalRule::getRule(StringValidatorRule::getRule()));
 }
 /**
  * Constructor -- sets up the allowed fields for this kind of {@link DataContainer}
  * 
  * @see DataContainer
  * @access public 
  * @return void 
  */
 function HarmoniConfig()
 {
     // initialize the data container
     $this->init();
     // add the fields we want to allow
     $message = "HarmoniConfig - the option 'defaultAction' must be set to a string value!";
     $type = "Harmoni";
     $this->add("defaultAction", StringValidatorRule::getRule(), $message, $type);
     $this->add("defaultAction", FieldRequiredValidatorRule::getRule(), $message, $type);
     unset($message, $type);
     $message = "HarmoniConfig - the option 'defaultModule' must be set to a string value!";
     $type = "Harmoni";
     $this->add("defaultModule", StringValidatorRule::getRule(), $message, $type);
     $this->add("defaultModule", FieldRequiredValidatorRule::getRule(), $message, $type);
     $message = "HarmoniConfig - if specified, the option 'defaultParams' must be set to a an array of string values!";
     $this->add("defaultParams", OptionalRule::getRule(ArrayValidatorRuleWithRule::getRule(StringValidatorRule::getRule())), $message, $type);
     $this->add("programTitle", StringValidatorRule::getRule(), $message, $type);
     $this->add("sessionName", FieldRequiredValidatorRule::getRule());
     $this->set("sessionName", "Harmoni");
     $this->add("sessionUseCookies", BooleanValidatorRule::getRule());
     $this->set("sessionUseCookies", true);
     $this->add("sessionUseOnlyCookies", BooleanValidatorRule::getRule());
     $this->set("sessionUseOnlyCookies", true);
     $this->add("sessionCookiePath", FieldRequiredValidatorRule::getRule());
     $this->set("sessionCookiePath", "/");
     $this->add("sessionCookieDomain", StringValidatorRule::getRule(), "HarmoniConfig - You must set the 'sessionDomain' to the DNS domain you would like your session cookie sent to! (eg, '.mydomain.com')", "Harmoni");
     $this->set("sessionCookieDomain", "");
     // default
     // An array of module.action in which session ids are allowed to be passed in the
     // url
     $this->add("sessionInUrlActions", OptionalRule::getRule(ArrayValidatorRuleWithRule::getRule(StringValidatorRule::getRule())), $message, $type);
     $this->add("sessionCookiesSecure", BooleanValidatorRule::getRule());
     $this->set("sessionCookiesSecure", false);
     $this->add("sessionCookiesHttpOnly", BooleanValidatorRule::getRule());
     $this->set("sessionCookiesHttpOnly", true);
 }
 function test_rule_set_add_multiple()
 {
     $this->assertEqual($this->testRuleSet->count(), 0);
     // what the hell is this???
     // $error = 1;
     $error = new Error("UnitTest", "UnitTest", false);
     $rq = FieldRequiredValidatorRule::getRule();
     $email = EmailValidatorRule::getRule();
     $number = NumericValidatorRule::getRule();
     $this->testRuleSet->addRule("mystring", $rq, $error);
     $this->testRuleSet->addRule("mystring", $email, $error);
     $this->testRuleSet->addRule("boolean", BooleanValidatorRule::getRule(), $error);
     $this->testRuleSet->addRule("mynumber", $number, $error);
     $this->assertEqual($this->testRuleSet->count(), 3);
     $this->assertReference($this->testRuleSet->_rules["mystring"][0][0], $rq);
     $this->assertReference($this->testRuleSet->_rules["mystring"][1][0], $email);
     $this->assertReference($this->testRuleSet->_rules["mynumber"][0][0], $number);
     //			$this->assertEqual($this->testRuleSet->getKeys(), array("mystring","mynumber","boolean"));
 }