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()))); }