Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
50.00% covered (danger)
50.00%
3 / 6
CRAP
56.52% covered (warning)
56.52%
13 / 23
ModuleAnswer
0.00% covered (danger)
0.00%
0 / 1
50.00% covered (danger)
50.00%
3 / 6
15.66
56.52% covered (warning)
56.52%
13 / 23
 __construct
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 append
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 2
 appendAll
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
7 / 7
 get
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
 getAll
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 serialize
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 7
<?php 
    namespace manager;
    
    // FORMAT: 
    // 
    // path:  "nomModule/nomMethode"
    // data1: {donnee1}
    // data2: {donnee2}
    // ...
    // 
    // 
    // 
    // 
    class ModuleAnswer{
        // Attributs prives utiles (initialisation)
        private $data;
        public $error;
        /* CONSTRUCTEUR D'UNE REPONSE DE MODULE
        *
        * @error<ModuleError>                    Erreur passee par la requete (si existe)
        *
        */
        public function __construct($error=ManagerError::Success){
            $this->data = array();
            $this->error = $error;
        }
        /* AJOUTE UNE DONNEE A LA REPONSE
        *
        * @key<String>                                         Le nom de la valeur a ajouter
        * @value<mixed*>                                     La valeur a ajouter
        *
        */
        public function append($key, $value){
            // Ajoute une entree pour la cle @key et de valeur @value
            $this->data[$key] = $value;
            return $this;
        }
        /* AJOUTE TOUTES LES DONNEES A LA REPONSE
        *
        * @dataset<Array>                                     Le tableau associatif correspondant a la reponse
        *
        */
        public function appendAll($dataset){
            // Si ce n'est pas un tableau, on ne fais rien
            if( !is_array($dataset) ) return $this;
            // Si une valeur contient une erreur
            if( array_key_exists('ModuleError', $dataset) ){
                // On definit cette erreur
                $this->error = $dataset['ModuleError'];
                // On enleve cette entree des donnees
                unset($dataset['ModuleError']);
            }
            // Ajoute une entree pour la cle @key et de valeur @value
            $this->data = $dataset;
            return $this;
        }
        /* RECUPERE UNE DONNEE DE LA REPONSE
        *
        * @key<String>                                         Le nom de la valeur a recuperer
        *
        * @return value<mixed*>                             La valeur a cette cle
        * @return error<null>                                 Retourne NULL si aucune valeur pour cette cle
        *
        */
        public function get($key){
            // Si la valeur de cle @key n'existe pas, on retourne NULL
            if( !isset($this->data[$key]) )
                return null;
            // Sinon, on retourne la valeur associee
            return $this->data[$key];
        }
        /* RECUPERE TOUTES LES DONNEES DE LA REPONSE
        *
        * @return data<Array>                             Les donnees de la reponse
        *
        */
        public function getAll(){
            // Sinon, on retourne la valeur associee
            return $this->data;
        }
        /* SERIALISATION A PARTIR DES DONNEES
        *
        * @return json<String>                         Retourne les donnees serialisees
        *
        */
        public function serialize(){
            // On rajoute l'erreur au message
            $returnData = array_merge( 
                array(
                    'ModuleError' => $this->error,
                    'ErrorDescription' => ManagerError::explicit($this->error)
                ),
                $this->data
            );
            return json_encode($returnData);
        }
    }
?>