public function testComplexTypeValidatorWithObject()
 {
     $validator = _ctValidator()->attachTo(_validator('date'), 'datenaissance')->attachTo(_validator('date'), 'dateinscription')->required('datenaissance')->required('dateinscription');
     $personne = new StdClass();
     $this->assertTrue($validator->check($personne) !== true);
     $errors = $validator->check($personne)->asArray();
     $this->assertTrue(isset($errors['datenaissance']));
     $this->assertTrue(isset($errors['dateinscription']));
     $personne->datenaissance = '25/12/1976';
     $personne->dateinscription = '01/01/1989';
     $this->assertTrue($validator->check($personne));
     //test lorsqu'une propriété est indiquée comme obligatoire sans y attacher de validateur
     $validator = _ctValidator()->attachTo(_validator('date'), 'datenaissance')->required('datenaissance')->required('dateinscription');
     $personne = new StdClass();
     $personne->datenaissance = '25/12/1976';
     $this->assertTrue($validator->check($personne) !== true);
     //Avec la factory dédiée aux objets
     $validator = CopixValidatorFactory::createObject()->attachTo(_validator('date'), 'datenaissance')->attachTo(_validator('date'), 'dateinscription')->required(array('datenaissance', 'dateinscription'));
     $personne = new StdClass();
     $this->assertTrue($validator->check($personne) !== true);
     $errors = $validator->check($personne)->asArray();
     $this->assertTrue(isset($errors['datenaissance']));
     $this->assertTrue(isset($errors['dateinscription']));
     $personne->datenaissance = '25/12/1976';
     $personne->dateinscription = '01/01/1989';
     $this->assertTrue($validator->check($personne));
     //test des asserts
     $validator = _ctValidator()->attachTo(_validator('date'), 'datenaissance')->required('datenaissance')->required('dateinscription');
     $personne = new StdClass();
     $this->assertTrue($validator->check($personne) !== true);
     try {
         $validator->assert($personne);
         $this->assertTrue(false);
     } catch (CopixValidatorException $e) {
         $this->assertTrue(true);
     }
     $personne->datenaissance = '25/12/1976';
     try {
         $validator->assert($personne);
         $this->assertTrue(false);
     } catch (CopixValidatorException $e) {
         $this->assertTrue(true);
     }
     $personne->dateinscription = '01/12/2010';
     try {
         $validator->assert($personne);
         $this->assertTrue(true);
     } catch (CopixValidatorException $e) {
         $this->assertTrue(false);
     }
     //test du remplacement des messages d'erreur
     $validator = _ctValidator('Pas une personne valide')->attachTo(_validator('date'), 'datenaissance')->required('datenaissance')->required('dateinscription');
     $this->assertTrue($validator->check(new StdClass()) !== true);
     $this->assertEquals(count($validator->check(new StdClass())->asArray()), 1);
     $this->assertEquals('Pas une personne valide', _toString($validator->check(new StdClass())));
 }