public function testAddErrors()
 {
     //ForceAppend === false
     $object = new CopixErrorObject(array(0 => 'Erreur1', 1 => 'Erreur2'));
     $object->addErrors(array(1 => 'Erreur2'));
     $this->assertEquals(count($object->asArray()), 2);
     //ForceAppend = true
     $object->addErrors(array(1 => 'Erreur3'), true);
     $this->assertEquals(count($object->asArray()), 3);
     //Ajout d'un errorObject (forceappend == false)
     $object2 = new CopixErrorObject(array(0 => 'Erreur1', 1 => 'Erreur2'));
     $object->addErrors($object2);
     $this->assertEquals(count($object->asArray()), 3);
     //Ajout d'un errorObject (forceappend == true)
     $object2 = new CopixErrorObject(array(0 => 'Erreur4', 1 => 'Erreur5'));
     $object->addErrors($object2, true);
     $this->assertEquals(count($object->asArray()), 5);
     //Ajout d'un StdClass (forceappend === false)
     $object = new CopixErrorObject(array('e1' => 'Erreur1'));
     $errors = new StdClass();
     $errors->e1 = 'Erreur 1';
     $object->addErrors($errors);
     $this->assertEquals(count($object->asArray()), 1);
     //Ajout d'un StdClass (forceappend === true)
     $errors->e1 = 'Erreur 2';
     $object->addErrors($errors, true);
     $this->assertEquals(count($object->asArray()), 2);
 }
 /**
  * On passe par toutes les méthodes de validation intermédiaire
  * @param mixed $pValue La propriété à valider
  * @return boolean / CopixErrorObject
  */
 protected function _validate($pValue)
 {
     $toReturn = new CopixErrorObject();
     foreach ($this->_propertiesToCheck() as $propertyName) {
         if (($result = $this->_checkProperty($propertyName, $pValue)) !== true) {
             $toReturn->addErrors(array($propertyName => $result));
         }
     }
     return $toReturn->isError() ? new CopixErrorObject($this->_getMessage($pValue, $toReturn)) : true;
 }