IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Salesforce.com Discussion :

Classe test Plannig


Sujet :

Salesforce.com

  1. #1
    Invité
    Invité(e)
    Par défaut Classe test Plannig
    Bonjour,

    J'ai réalisé un planning selon les Ressources (intervenants) de l'entreprise. L'objet est Ressource_INEO__c.

    J'ai réussi à faire mon controller ainsi que ma page visualforce mais j'ai du mal sur ma classe de test.

    Je bute à 36% car j'ai une erreur lorsque je lance le test.

    Errors : "System.QueryException: Invalid bind expression type of Planification_Astreinte__c for Id field of SObject Ressource_INEO__c"

    Stack Trave : " Class.CCE_DOS_PlanningRessource.pageLoad: line 52, column 1
    Class.Test_CCE_DOS_PlanningRessource.TestCCE_DOS_PlanningRessource: line 74, column 1"

    Voici mon controlleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    public class CCE_DOS_PlanningRessource {
    
        public Date Today_180 = Date.today() - 180;
        private final Astreinte__c Astreinte;
        
     //Pour pouvoir prendre ce contrôleur comme extensions sur la page visualforce
        public CCE_DOS_PlanningRessource (ApexPages.StandardController controller) {
            this.Astreinte = (Astreinte__c)controller.getRecord();
        }
    
        ApexPages.StandardSetController controller;
        public CCE_DOS_PlanningRessource(ApexPages.StandardSetController controller) {
            this.controller= controller;
        }
    
    
    
        //Liste des évènements
        public list<calEvent> events {get;set;}
    
        //Le plugin calendrier a besoin d'un format de date. On utilise un string pour lui donner le bon format
        String dtFormat = 'd MMM yyyy HH:mm:ss';
    
        //Constructeur
        public CCE_DOS_PlanningRessource() {
               
        }
    
        //Combobox avec les niveaux d'astreinte
        public String NiveauNum ='Astreinte';                    
        public String getNiveauNum() {return NiveauNum;}
        public void setNiveauNum(String niv) {NiveauNum = niv;}
       
        public List<SelectOption> getOptionNiveau()
        {
           List<SelectOption> options = new List<SelectOption>();
           options.add(new SelectOption('Astreinte', 'Astreinte'));
           options.add(new SelectOption('Absence', 'Absence'));
           options.add(new SelectOption('Les deux', 'Les deux'));
           return options;
        }
    
     
    
       public PageReference pageLoad() {
            events = new list<calEvent>();
     
            
            List<Planification_Astreinte__c> PA = new List<Planification_Astreinte__c>();
            
            IF(NiveauNum == 'Astreinte'){
            PA = [SELECT Prime_Euro__c, Ressource_INEO__c, Temps_recuperer__c, Ressource_INEO__r.Name, Ressource_INEO__r.prenom__c, Niveau__c, Date_debut__c, Date_fin__c, Astreinte__r.Id, Astreinte__r.Name, RecordType.Name
                                           FROM Planification_Astreinte__c
                                           WHERE (Date_fin__c >= :Today_180) 
                                           AND (Ressource_INEO__r.Id =:controller.getSelected()) 
                                            
                                           AND (RecordType.Name != 'Absence')];
    
            }
            ELSE IF(NiveauNum == 'Absence'){
            PA = [SELECT Prime_Euro__c, Ressource_INEO__c, Temps_recuperer__c, Ressource_INEO__r.Name, Demi_journee__c, Type__c, Ressource_INEO__r.prenom__c, Niveau__c, Date_debut__c, Date_fin__c, Astreinte__r.Id, Astreinte__r.Name, RecordType.Name
                                           FROM Planification_Astreinte__c
                                           WHERE (Date_fin__c >= :Today_180) 
                                           AND (Ressource_INEO__r.Id =:controller.getSelected()) 
                                           AND (RecordType.Name='Absence') ];
            }
             ELSE IF(NiveauNum == 'Les deux'){
            PA = [SELECT Prime_Euro__c, Ressource_INEO__c, Temps_recuperer__c, Demi_journee__c, Ressource_INEO__r.Name, Type__c, Ressource_INEO__r.prenom__c, Niveau__c, Date_debut__c, Date_fin__c, Astreinte__r.Id, Astreinte__r.Name, RecordType.Name
                                           FROM Planification_Astreinte__c
                                           WHERE (Date_fin__c >= :Today_180) 
                                           AND (Ressource_INEO__r.Id =:controller.getSelected())];
            }
                    
                    
                   //Boucle pour chaque planification astreinte : ma requête        
            for(Planification_Astreinte__c Planif : PA){
                IF (Planif.RecordType.Name != 'Absence')
                {
                //Définition de la date de début                           
                DateTime startDT = Planif.Date_debut__c;
    
                //Définition de la date de fin
                DateTime endDT = Planif.Date_fin__c +1;
    
                //Nouvel évènement
                calEvent AstEvent = new calEvent();
    
                //Définition du titre qui sera afficher dans les cases des jours sur le calendrier : Nom + Prénom
                AstEvent.title = Planif.Ressource_INEO__r.Name + ' ' + Planif.Ressource_INEO__r.prenom__c + ' (' + Planif.Niveau__c + ' - ' + Planif.Astreinte__r.Name + ')';
                
                //Définition des détails que l'on va utiliser avec un eventMouseover dans la page visualforce (s'affiche au passage de la souris)
                AstEvent.detail = 'Prime : ' + Planif.Prime_Euro__c + '  Temps récup : ' + Planif.Temps_recuperer__c;
                
                AstEvent.allDay = true;
    
                //On met au bon format la date de début et la date de fin
                AstEvent.startString = startDT.format(dtFormat);
                AstEvent.endString = endDT.format(dtFormat);
    
                //Url permet de faire le lien entre le calendrier et la page planification d'astreinte lorsque l'on clique
                AstEvent.url ='/' + Planif.Id;
                AstEvent.className = 'event-birthday';
                
                events.add(AstEvent);
                }
                ELSE IF (Planif.RecordType.Name == 'Absence' )
                {
                 //Définition de la date de début                           
                DateTime startDT = Planif.Date_debut__c;
    
                //Définition de la date de fin
                DateTime endDT = Planif.Date_fin__c +1;
    
                //Nouvel évènement
                calEvent AstEvent = new calEvent();
    
                //Définition du titre qui sera afficher dans les cases des jours sur le calendrier : Nom + Prénom
                AstEvent.title = Planif.Ressource_INEO__r.Name + ' ' + Planif.Ressource_INEO__r.prenom__c + '  (' + Planif.Type__c + ')' ;
                
                //Définition des détails que l'on va utiliser avec un eventMouseover dans la page visualforce (s'affiche au passage de la souris)
                AstEvent.detail = 'Type absence : ' + Planif.Type__c + ' Journée : ' + Planif.Demi_journee__c;
                
                AstEvent.allDay = true;
    
                //On met au bon format la date de début et la date de fin
                AstEvent.startString = startDT.format(dtFormat);
                AstEvent.endString = endDT.format(dtFormat);
    
                //Url permet de faire le lien entre le calendrier et la page planification d'astreinte lorsque l'on clique
                AstEvent.url ='/' + Planif.Id;
                AstEvent.className = 'event-absence';
                
                events.add(AstEvent);
                }
                    
                //Ajout de l'évènement à la liste d'évènements
                
            }   
             return null;
            }
    
                    
           
        //Classe des données que comporte un évènement
        public class calEvent{
    
            //Titre de l'évènement, dans le cas présent : Nom + Prénom
            public String title {get;set;}
            
            //Détail de l'évènement, dans le cas présent : Prime + Temps récup
            public String detail {get;set;}
            
            //Couleur de l'évènement, dans le cas présent : couleur aléatoire
            public String color {get;set;}
            
            
            public Boolean allDay {get;set;}
    
            //Date de début de l'évènement
            public String startString {get;private set;}
            
            //Date de fin de l'évènement
            public String endString {get;private set;}
    
            //Lien de la planification astreinte
            public String url{get;set;}
            
            //C'était de base pour les trois couleurs
            public String className {get;set;}
    
        }
    }

    La classe de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    @isTest
    public class Test_CCE_DOS_PlanningRessource
    {
        public static testMethod void TestCCE_DOS_PlanningRessource()
        {
             Date Today_180 = Date.today() - 180;
             
             //INSERER LES DONNEES
             // Initialisation du RecordType de la Ressource INEO à créer
             Id RessourceRTId = [select Id from RecordType where SobjectType = 'Ressource_INEO__c' and DeveloperName = 'Standard'].Id; 
             
             //Il faut insérer une Ressource_INEO__c 
             Ressource_INEO__c MaRessource = new Ressource_INEO__c (Name='MaRessource', RO__c=FALSE, RecordTypeId = RessourceRTId);   
             insert MaRessource;
             
             // Initialisation RecordType des Sites INEO à créer
             Id SiteRTId = [select Id from RecordType where SobjectType = 'Site__c' and DeveloperName = 'Client_DOS'].Id; 
    
             //Il faut insérer un Site__c rattaché à un RecordType
             Site__c MonSite = new Site__c(name='Site Client', RecordTypeId = SiteRTId);
             insert MonSite;
             
             //Il faut insérer un Compte__c rattaché à un Site
             Account MonCompte = new Account(Name='MonCompte',  Site_INEO__c=MonSite.id);
             insert MonCompte;
            
            
             //Il faut insérer une Astreinte__c rattaché à un Site et un Compte
             Astreinte__c Astreinte = new Astreinte__c(name='Astreinte Client', Site_INEO__c=MonSite.id, Client_sous_contrat__c=MonCompte.id);
             insert Astreinte;
            
            //Initialisation RecordType des Planifications à créer
             Id PlanifRTId = [select Id from RecordType where SobjectType = 'Planification_Astreinte__c' and DeveloperName = 'Astreinte'].Id;
             
             //Il faut insérer une Planification_Astreinte__c 
             Planification_Astreinte__c MaPlanif = new Planification_Astreinte__c(Ressource_INEO__c = MaRessource.Id, RecordTypeId = PlanifRTId);   
             insert MaPlanif;
           
           
            
            List<Planification_Astreinte__c> SelectedPlanification = [SELECT Prime_Euro__c, Ressource_INEO__c, Temps_recuperer__c, Ressource_INEO__r.Name, Ressource_INEO__r.prenom__c, Niveau__c, Date_debut__c, Date_fin__c, Astreinte__r.Id, Astreinte__r.Name, RecordType.Name
                                           FROM Planification_Astreinte__c
                                           ];
            
             ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(SelectedPlanification);
            
            // Sélection de tous les enregistrements (simulation de la sélection dans la vue de liste)
            ssc.setSelected(SelectedPlanification);
            
             //Appel du constructeur    
             CCE_DOS_PlanningRessource TestControl6 = new CCE_DOS_PlanningRessource();             
             ApexPages.StandardController sc = new ApexPages.standardController(Astreinte);
             CCE_DOS_PlanningRessource TestControl = new CCE_DOS_PlanningRessource(sc);
             //CCE_DOS_PlanningRessource TestControl1 = new CCE_DOS_PlanningRessource(sc);
             //CCE_DOS_PlanningRessource TestControl2 = new CCE_DOS_PlanningRessource(sc);
    
             CCE_DOS_PlanningRessource TestControl3 = new CCE_DOS_PlanningRessource(ssc);
            
             
             //Appel des toutes les méthodes dans la classe
             Test.startTest();
             PageReference pageRef = Page.PV_DOS_PlanningRessource;
             Test.setCurrentPage(pageRef);
             
             list<SelectOption> testoptions = TestControl.getOptionNiveau();
             system.assertEquals(3, testoptions.size());
             TestControl3.setNiveauNum('Astreinte');
             TestControl.setNiveauNum('Absence');
             //TestControl3.setNiveauNum('Les deux');
    
             String NiveauNum3 = TestControl3.getNiveauNum();
            String NiveauNum = TestControl.getNiveauNum();
         
             TestControl3.pageLoad();
             TestControl.pageLoad();
           
            
             
             //Stop le test
             Test.stopTest();
        }
        //Ajouter n'importe quelles autres méthodes que l'on veut tester comme les tests négatifs
      
    }


    Je ne vois pas comment y remédier... Je bloque depuis quelques temps déjà...

    Pourriez-vous m'aider ?

    Je vous remercie par avance !

    Bonne journée et bon courage.


    Dedex

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    Bonjour,

    Le problème vient de ton utilisation de getSelected(), je ne sais pas ce que tu esperes obtenir via cette methode mais jamais tu n'obtiendras un ID
    tu obtiens forcement un objet List des elements d'une ListView
    cf ce tutoriel: http://www.infallibletechie.com/2014...from-list.html

    si c'est bien comme je le pense, le code devrait plutot être de la forme (j'ai besoin du code de la visualforce pour confirmer)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set<Id> ressourceIds = new Set<Id>();
    for (Ressource_INEO__c res : (List<Ressource_INEO__c>)controller.getSelected()){ 
                ressourceIds.add(res.Id);
            }
    PA = [SELECT Prime_Euro__c, Ressource_INEO__c, Temps_recuperer__c, Ressource_INEO__r.Name, Ressource_INEO__r.prenom__c, Niveau__c, Date_debut__c, Date_fin__c, Astreinte__r.Id, Astreinte__r.Name, RecordType.Name
                                           FROM Planification_Astreinte__c
                                           WHERE (Date_fin__c >= :Today_180) 
                                           AND (Ressource_INEO__c IN :ressourceIds) 
                                            
                                           AND (RecordType.Name != 'Absence')];

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voici le code la visualforce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    <apex:page standardController="Ressource_INEO__c" extensions="CCE_DOS_PlanningRessource" recordSetVar="Planification_Astreinte__c" action="{!pageLoad}" readonly="true" sidebar="false">
    
        <!-- Appel des fichiers CSS -->
        <link href="{!$Resource.fullCalendarCSS}" rel="stylesheet" />
        <link href="{!$Resource.fullCalendarPrintCSS}" rel="stylesheet" media="print" />
        
        <!-- Lien ajouté avec la librairie du Calendrier -->
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
        
        <!-- Appel des fichiers JavaScript : ne pas les mettre au-dessus des liens googleapis sinon le calendrier ne s'affiche plus -->
        <script src="{!$Resource.momentMinJS}"></script>
        <script src="{!$Resource.LangueFR}"></script>
        <script src="{!$Resource.fullCalendarMinJS}"></script>
    
    <script>
    $(document).ready(function() {
     
                <!-- Appel de la méthode fullCalendar -->
                $('#calendar').fullCalendar({
                    
                    <!-- Taille du calendrier -->
                    contentHeight : 400,
                    
                    <!-- Dessus du calendrier -->
                    header: {
                        <!-- Affichage à gauche des boutons flèche gauche, flèche droite, Aujourd'hui -->
                        left: 'prev,next, today',
    
                        <!-- Affichage du nom du mois au milieu au-dessus du calendrier -->
                        center: 'title',
                        
                        <!-- Affichage des boutons Mois, Semaine ==> right: 'month,agendaWeek,agendaDay' -->
                        <!-- right: 'month'-->
    
                    },
                    <!-- Affichage du calendrier en français -->
                    lang : 'fr',
                    
                    <!-- Affichage des numéros de semaine -->                
                    weekNumbers: true,
                    
                    <!-- Permet ou non de pouvoir déplacer les astreintes, cela ne change pas la date dans Planification Astreinte ==> INUTILE -->
                    editable: false,
                   
                    <!-- Liste des évènements (Astreintes) -->
                    events:
    
                    [
                        <!-- Lors de l'exécution, apex:repeat va faire un tableau de tous les évènements -->
                        <apex:repeat value="{!events}" var="e">
                            {
                                <!-- NOM Prenom (Niveau) -->
                                title: "{!e.title}",
                                
                                <!-- Date début -->
                                start: '{!e.startString}',
    
                                <!-- Date fin -->
                                end: '{!e.endString}',
                                
                                <!-- Prime et Temps récup -->
                                detail: '{!e.detail}',
                                
                                <!-- Permet d'accéder à la page de planification d'astreinte -->
                                url: '{!e.url}',
    
                                allDay: {!e.allDay},
    
                                <!-- Détermine la couleur selon la classe -->
                                className: '{!e.className}',
                                
                               
                            },
    
                        </apex:repeat>
                    ],
                 
                    <!-- au passage de la souris sur l'évènement -->
                     eventMouseover: function(calEvent, view) {
                        $(this).find(".fc-content").attr({"data-toggle":"popover","title":calEvent.detail,"data-content":calEvent.detail, "data-container": "body"});
                    }  
                });
            });
        </script>
    
    
        <!--Petit ajout de style en plus des fichiers .css -->
        <style>
    
            #cal-options {float:left;}
    
            #cal-legend { float:right;}
    
            #cal-legend ul {margin:0;padding:0;list-style:none;}
    
            #cal-legend ul li {margin:0;padding:5px;float:left;}
    
            #cal-legend ul li span {display:block; height:16px; width:16px; margin-right:4px; float:left; border-radius:4px;}
    
            #calendar {margin-top:20px;}
    
            #calendar a:hover {color:#fff !important;}
    
            .fc-event-inner {padding:3px;}
            .event-birthday {background:#56458c;border-color:#56458c;}
            .event-campaign {background:#cc9933;border-color:#cc9933;}
            .event-personal {background:#1797c0;border-color:#1797c0;}
            .event-absence{background:#077507;border-color:#077507;}
        </style>
    
      <!-- Affichage du titre avec le nom de l'astreinte -->
      <apex:sectionHeader title=""/>
        <apex:outputPanel id="calPanel">
            <apex:form >
            <div id="cal-legend">
                    <ul>
                        <li><span class="event-birthday"></span>Astreinte</li>
                        <li><span class="event-absence"></span>Absences</li>
                        <!-- <li><span class="event-personal"></span>Les deux</li> -->
                    </ul>
                </div>
                
                <!-- Combobox avec les Niveaux -->
                <apex:selectlist value="{!NiveauNum}" multiselect="false" size="1">
                      <!-- <apex:selectOption itemvalue="0" itemLabel="Sélectionnez un niveau" /> -->
                      <apex:selectoptions value="{!optionNiveau}"/> 
                      <apex:actionsupport event="onchange" action="{!pageLoad}"/>
                </apex:selectlist>
    
    
                <!-- div pour afficher le Calendar -->
                <div id="calendar"></div>
    
            </apex:form>
        </apex:outputPanel>
        
    </apex:page>
    Lorsque je suis sur la page des Ressources (intervenants), je peux sélectionner une ou plusieurs personnes (dans la colonne avec les combobox) afin de les afficher dans le planning. Je récupère ça avec le getSelected afin de savoir qui a été coché ou non.

    Et ça fonctionne ! Ce n'est peut-être pas la meilleure manière de le faire...

    Du coup, je bloque sur ma classe de test... Je suis toujours bloqué.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 239
    Points : 424
    Points
    424
    Par défaut
    As tu essayé de mettre en place le code que j'ai fourni ?

    Une question, la Listview contenant les objets de type Ressource_INEO__c ne sont pas dans cette page ? ils sont selectionnés dans une autre page ?
    si oui, c'est pour cela que le getSelected() ne retourne pas la bonne liste !!
    cela retourne la selection de la liste en cours, comme sur cet exemple http://salesforce.stackexchange.com/...cord-selection

    Je pense que tu devrais passer les Ids des Ressource_INEO__c en parametres
    http://www.forcetree.com/2009/06/pas...orce-page.html

    Ou alors ajouter la liste des Ressource_INEO sur la meme page que le calendrier ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci d'avoir donné de ton temps pour m'aider !

    Sans changer tout le code, j'ai juste changé ma liste dans la test class.

    J'avais une liste de Planification_Astreinte__c avec la requête alors qu'il fallait les Ressource_INEO__c.

    J'ai remplacé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
      
            List<Planification_Astreinte__c> SelectedPlanification = [SELECT Prime_Euro__c, Ressource_INEO__c, Temps_recuperer__c, Ressource_INEO__r.Name, Ressource_INEO__r.prenom__c, Niveau__c, Date_debut__c, Date_fin__c, Astreinte__r.Id, Astreinte__r.Name, RecordType.Name
                                           FROM Planification_Astreinte__c
                                           ];
            
             ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(SelectedPlanification);
            
            // Sélection de tous les enregistrements (simulation de la sélection dans la vue de liste)
            ssc.setSelected(SelectedPlanification);
            
             //Appel du constructeur    
             CCE_DOS_PlanningRessource TestControl6 = new CCE_DOS_PlanningRessource();             
             ApexPages.StandardController sc = new ApexPages.standardController(Astreinte);
             CCE_DOS_PlanningRessource TestControl = new CCE_DOS_PlanningRessource(sc);
             //CCE_DOS_PlanningRessource TestControl1 = new CCE_DOS_PlanningRessource(sc);
             //CCE_DOS_PlanningRessource TestControl2 = new CCE_DOS_PlanningRessource(sc);
    
             CCE_DOS_PlanningRessource TestControl3 = new CCE_DOS_PlanningRessource(ssc);
            
             
             //Appel des toutes les méthodes dans la classe
             Test.startTest();
             PageReference pageRef = Page.PV_DOS_PlanningRessource;
             Test.setCurrentPage(pageRef);
             
             list<SelectOption> testoptions = TestControl.getOptionNiveau();
             system.assertEquals(3, testoptions.size());
             TestControl3.setNiveauNum('Astreinte');
             TestControl.setNiveauNum('Absence');
             //TestControl3.setNiveauNum('Les deux');
    
             String NiveauNum3 = TestControl3.getNiveauNum();
            String NiveauNum = TestControl.getNiveauNum();
         
             TestControl3.pageLoad();
             TestControl.pageLoad();
    J'ai remplacé et ajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
            List<Planification_Astreinte__c> ListePlanif = new List<Planification_Astreinte__c>();
            
            for(integer i=0;i<10;i++)
            {
           
             ListePlanif.add(new Planification_Astreinte__c(Niveau__c = 'Niveau 1', Astreinte__c = Astreinte.Id, Ressource_INEO__c = MaRessource.Id, RecordTypeId = PlanifRTId, Date_fin__c = Date.today())); 
             ListePlanif.add(new Planification_Astreinte__c(Niveau__c = 'Niveau 1', Astreinte__c = Astreinte.Id, Ressource_INEO__c = MaRessource.Id, RecordTypeId = PlanifRTId1, Date_fin__c = Date.today())); 
            }
            insert ListePlanif;
            
          
            List<Ressource_INEO__c> SelectedRessource = [SELECT Id, Name
                                           FROM Ressource_INEO__c
                                           ];
            
             ApexPages.StandardSetController ssc = new ApexPages.StandardSetController(SelectedRessource);
            
            // Sélection de tous les enregistrements (simulation de la sélection dans la vue de liste)
            ssc.setSelected(SelectedRessource);
            
             //Appel du constructeur    
             CCE_DOS_PlanningRessource TestControl6 = new CCE_DOS_PlanningRessource();             
             ApexPages.StandardController sc = new ApexPages.standardController(Astreinte);
            CCE_DOS_PlanningRessource TestControl2 = new CCE_DOS_PlanningRessource(sc); 
            CCE_DOS_PlanningRessource TestControl = new CCE_DOS_PlanningRessource(ssc);
             CCE_DOS_PlanningRessource TestControl1 = new CCE_DOS_PlanningRessource(ssc);
             
    
             CCE_DOS_PlanningRessource TestControl3 = new CCE_DOS_PlanningRessource(ssc);
            
             
             //Appel des toutes les méthodes dans la classe
             Test.startTest();
             PageReference pageRef = Page.PV_DOS_PlanningRessource;
             Test.setCurrentPage(pageRef);
             
             list<SelectOption> testoptions = TestControl.getOptionNiveau();
             system.assertEquals(3, testoptions.size());
             TestControl3.setNiveauNum('Astreinte');
             TestControl.setNiveauNum('Absence');
             TestControl1.setNiveauNum('Les deux');
    
            // String NiveauNum3 = TestControl3.getNiveauNum();
             String NiveauNum3 = TestControl3.getNiveauNum();
             String NiveauNum1 = TestControl1.getNiveauNum();
             String NiveauNum = TestControl.getNiveauNum();
             //TestControl3.pageLoad();
             TestControl3.pageLoad();
             TestControl.pageLoad();
             TestControl1.pageLoad();

    Je suis donc à 100% sur la classe de test

    Je te remercie encore et je te souhaite bon courage ainsi que de bonnes vacances si tu n'y es pas encore allé.

    Dedex

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Classe test sur un objet
    Par yoh42 dans le forum Langage
    Réponses: 8
    Dernier message: 01/02/2011, 14h29
  2. c'est quoi cette syntaxe : class="<?=$test?>" ?
    Par Figaro90 dans le forum Langage
    Réponses: 5
    Dernier message: 20/04/2010, 15h41
  3. [NUnit] - Ignorer classe Test
    Par marcel_kobain dans le forum C#
    Réponses: 2
    Dernier message: 15/05/2009, 14h32
  4. class TEST nomClass
    Par nocolach dans le forum C++
    Réponses: 2
    Dernier message: 16/04/2009, 22h15
  5. [JUnit] Compilation de ma classe Test
    Par pamic dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 30/06/2005, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo