Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.test.modeles;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;
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.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteDetermination;


public class PropositionDeterminationTest {
        
        PropositionDetermination propositionDetermination;
        VoteDetermination voteDetermination1;
        Commentaire commentaireInitial;
        Date dateInitiale;
        ArrayList<Commentaire> commentairesInitiaux = new ArrayList<Commentaire>();
        Map<String, VoteDetermination> votesDeterminationsInitiaux = new HashMap<String, VoteDetermination>();
        
    @Before
    public void setUp() {
        propositionDetermination = new PropositionDetermination(new Observation());
        Contributeur contributeur = new Contributeur("peronnet", "Aurélien", "aurelien@tela-botanica.org");
        propositionDetermination.setContributeur(contributeur);
        propositionDetermination.setId("5");
        dateInitiale = new Date();
        propositionDetermination.setDate(dateInitiale);
        commentaireInitial = new Commentaire(contributeur, new Date(), "Oui c'est interessant");
        commentairesInitiaux.add(commentaireInitial);
        propositionDetermination.setListeCommentaires(commentairesInitiaux);
        propositionDetermination.setEspece("Acer monsp. L.");
        
        voteDetermination1 = new VoteDetermination();
                voteDetermination1.setVote(1);
                voteDetermination1.setDate(new Date());
                voteDetermination1.setContributeur("benjamin");
        votesDeterminationsInitiaux.put("benjamin", voteDetermination1);        
        propositionDetermination.setVotesDeterminations(votesDeterminationsInitiaux);
    }
        
        @Test
        public void testAjouterVoteDetermination() {
                
                assertEquals(1, propositionDetermination.getVotesDeterminations().size());
                
                VoteDetermination voteDeterminationTest = new VoteDetermination();
                voteDeterminationTest.setVote(1);
                voteDeterminationTest.setDate(new Date());
                voteDeterminationTest.setContributeur("gregoire");
                propositionDetermination.ajouterVoteDetermination(voteDeterminationTest);
                assertEquals(2, propositionDetermination.getVotesDeterminations().size());
                
                VoteDetermination voteDeterminationTest2 = new VoteDetermination();
                voteDeterminationTest2.setVote(0);
                voteDeterminationTest2.setDate(new Date());
                voteDeterminationTest2.setContributeur("gregoire");
                propositionDetermination.ajouterVoteDetermination(voteDeterminationTest2);
                
                // la taille ne doit pas avoir changé après l'ajout du vote de Grégoire car le contributeur 
                // est la clé la map (i.e. 1 vote par personne pour une determination)
                assertEquals(2, propositionDetermination.getVotesDeterminations().size());
                assertEquals(0, propositionDetermination.getVotesDeterminations().get("gregoire").getVote());
        }

        @Test
        public void testGetContributeur() {
                assertEquals("Aurélien", propositionDetermination.getContributeur().getPrenom());
        }

        @Test
        public void testSetContributeur() {
                Contributeur contributeurTest = new Contributeur("duche", "gregoire", "gregoire@tela-botanica.org");
                propositionDetermination.setContributeur(contributeurTest);
                assertEquals("gregoire", propositionDetermination.getContributeur().getPrenom());
        }

        @Test
        public void testGetId() {
                assertEquals("5", propositionDetermination.getId());
        }

        @Test
        public void testSetId() {
                propositionDetermination.setId("325");
                assertEquals("325", propositionDetermination.getId());
        }

        @Test
        public void testGetDate() {
                assertEquals(dateInitiale, propositionDetermination.getDate());
        }

        @Test
        public void testSetDate() {
                Date dateTest = new Date();
                propositionDetermination.setDate(dateTest);
                assertEquals(dateTest, propositionDetermination.getDate());
        }

        @Test
        public void testGetCommentaires() {
                assertEquals(1, propositionDetermination.getListeCommentaires().size());
                assertEquals("Aurélien", propositionDetermination.getListeCommentaires().get(0).getContributeur().getPrenom());
        }

        @Test
        public void testSetCommentaires() {
                ArrayList<Commentaire> listeVide = new ArrayList<Commentaire>();
                propositionDetermination.setListeCommentaires(listeVide);
                assertEquals(0, propositionDetermination.getListeCommentaires().size());
        }

        @Test
        public void testAjouterCommentaire() {
                propositionDetermination.setListeCommentaires(commentairesInitiaux);
                assertEquals(1, propositionDetermination.getListeCommentaires().size());
                Contributeur contributeur = new Contributeur("Peronnet", "Aurélien", "aurelien@tela-botanica.org");
                Commentaire nouveauCommentaire = new Commentaire(contributeur, new Date(), "Tout est beau, tout est joyeux, je suis une fleur");
                propositionDetermination.ajouterCommentaire(nouveauCommentaire);
                assertEquals(2, propositionDetermination.getListeCommentaires().size());
                assertEquals("Aurélien", propositionDetermination.getListeCommentaires().get(1).getContributeur().getPrenom());
        }

        @Test
        public void testGetEspece() {
                assertEquals("Acer monsp. L.", propositionDetermination.getEspece());   
        }

        @Test
        public void testSetEspece() {
                propositionDetermination.setEspece("Acer monsp. subsp. monsp.");
                assertEquals("Acer monsp. subsp. monsp.", propositionDetermination.getEspece());        
        }

        @Test
        public void testGetVotesDeterminations() {
                assertEquals(1, propositionDetermination.getVotesDeterminations().size());
                assertEquals(voteDetermination1, propositionDetermination.getVotesDeterminations().get("benjamin"));
        }

        @Test
        public void testSetVotesDeterminations() {
                HashMap<String, VoteDetermination> votesDeterminationVides = new HashMap<String, VoteDetermination>();
                propositionDetermination.setVotesDeterminations(votesDeterminationVides);
                assertEquals(0,propositionDetermination.getVotesDeterminations().size());
        }

}