Subversion Repositories eFlore/Applications.del

Rev

Rev 690 | Rev 959 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.test.composants.formulaires;

import static org.junit.Assert.*;

import java.util.Date;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur;
import org.tela_botanica.del.client.composants.formulaires.formulairecommentaire.FormulaireCommentairePresenteur.Vue;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.Contributeur;
import org.tela_botanica.del.client.modeles.Observation;

public class FormulaireCommentaireTest {
        
        FormulaireCommentairePresenteur presenteurFormulaireCommentairePourObservation;
        FormulaireCommentairePresenteur presenteurFormulaireCommentairePourPossesseurCommentaire;
        
        Commentaire comm;
        
        Observation obs;
        
        @Before 
        public void setUp() {
                
                obs = new Observation();
                comm = new Commentaire(new Contributeur("1", "Peronnet", "Aurélien", "aurelien@tela-botanica.org"), new Date(), "Ceci est une chaine de charactères");
                obs.getInterventionsForum().add(comm);
                
                Vue vue1 = Mockito.mock(FormulaireCommentairePresenteur.Vue.class, Mockito.RETURNS_MOCKS);
                Mockito.when(vue1.getCommentaire().getText()).thenReturn("Ceci est un commentaire");
                Mockito.when(vue1.getPrenom()).thenReturn("Georges");
                Mockito.when(vue1.getNom()).thenReturn("Abitbol");
                
                presenteurFormulaireCommentairePourObservation= new FormulaireCommentairePresenteur(obs,vue1);
                
                Vue vue2 = Mockito.mock(FormulaireCommentairePresenteur.Vue.class, Mockito.RETURNS_MOCKS);
                Mockito.when(vue2.getCommentaire().getText()).thenReturn("Ceci est un commentaire");
                Mockito.when(vue2.getPrenom()).thenReturn("Georges");
                Mockito.when(vue2.getNom()).thenReturn("Abitbol");
                
                presenteurFormulaireCommentairePourPossesseurCommentaire = new FormulaireCommentairePresenteur(comm, vue2);
        }
        
        @Test
        public void testAjoutCommentaireSurObservation() {
                assertEquals(obs.getInterventionsForum().size(), 1);
                
                presenteurFormulaireCommentairePourObservation.surValidationCommentaire();
                assertEquals(obs.getInterventionsForum().size(), 2);
        }
        
        @Test
        public void testAjoutCommentaireSurPossesseurCOmmentaire() {
                // Les deux ligne suivantes désignent normalement le même objet, qui ne possède pas de commentaire
                // au début
                assertEquals(comm.getListeCommentaires().size(), 0);
                assertEquals(obs.getInterventionsForum().get(0).getListeCommentaires().size(), 0);
                
                presenteurFormulaireCommentairePourPossesseurCommentaire.surValidationCommentaire();
                assertEquals(obs.getInterventionsForum().size(), 1);
                assertEquals(obs.getInterventionsForum().get(0).getListeCommentaires().size(), 1);
        }
}