Subversion Repositories eFlore/Applications.del

Rev

Rev 959 | 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;
import org.tela_botanica.del.client.services.rest.CommentaireService;

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");

                CommentaireService commentaireService = Mockito.mock(CommentaireService.class);
                presenteurFormulaireCommentairePourObservation = new FormulaireCommentairePresenteur(obs, commentaireService, 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, commentaireService, vue2);
        }

        @Test
        public void testAjoutCommentaireSurObservation() {
                assertEquals(1, obs.getInterventionsForum().size());

                presenteurFormulaireCommentairePourObservation.surValidationCommentaire();
                assertEquals(1, obs.getInterventionsForum().size());
        }

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