public function testValidatorLogic()
 {
     $fail = new TestValidatorFail('fail!');
     $pass = new TestValidatorPass();
     $errors = new phTestValidatable();
     $logic = new phValidatorLogic($pass);
     $logic->and_($fail);
     $this->assertFalse($logic->validate('test', $errors), 'The and logic correctly fails');
     $logic = new phValidatorLogic($pass);
     $logic->or_($fail);
     $this->assertTrue($logic->validate('test', $errors), 'The or logic correctly passes');
     $logic = new phValidatorLogic($fail);
     $logic->or_($fail);
     $this->assertFalse($logic->validate('test', $errors), 'The or logic correctly fails');
     $logic = new phValidatorLogic($pass);
     $logic->and_($fail)->or_($pass);
     $this->assertTrue($logic->validate('test', $errors), 'The v and v or v logic correctly passes');
     $logic = new phValidatorLogic($fail);
     $logic->and_($fail);
     $errors->resetErrors();
     $logic->validate('test', $errors);
     $this->assertEquals(sizeof($errors->getErrors()), 2, 'The 2 fails messages where added');
 }