Subversion Repositories eFlore/Applications.del

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
644 aurelien 1
package org.tela_botanica.del.test.composants.votes;
629 aurelien 2
 
3
import static org.junit.Assert.assertEquals;
4
 
5
import java.util.ArrayList;
6
import java.util.List;
7
import org.junit.Before;
8
import org.junit.Test;
9
import org.mockito.Mockito;
637 aurelien 10
import org.tela_botanica.del.client.cache.CacheClient;
11
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
629 aurelien 12
import org.tela_botanica.del.client.modeles.Image;
13
import org.tela_botanica.del.client.modeles.Protocole;
14
 
15
import com.google.gwt.user.client.ui.HasWidgets;
16
 
17
public class MoyenneVotePresenteurTest {
18
 
19
	MoyenneVotePresenteur mvp;
20
	HasWidgets container;
21
	List<Protocole> tousLesProtocoles = new ArrayList<Protocole>();
22
	MoyenneVotePresenteur.Vue vue;
23
	Image imageCourante;
24
 
25
	@Before
26
	public void setUp() {
27
 
637 aurelien 28
		CacheClient.getInstance().getUtilisateur().setId(0+"");
29
 
629 aurelien 30
		Protocole protocol1 = new Protocole();
814 aurelien 31
		protocol1.setNom("esthétique");
629 aurelien 32
		protocol1.setId(0);
33
 
34
		Protocole protocol2 = new Protocole();
814 aurelien 35
		protocol2.setNom("capitalisation de scan de feuilles");
629 aurelien 36
		protocol2.setId(1);
37
 
38
		tousLesProtocoles.add(protocol1);
39
		tousLesProtocoles.add(protocol2);
40
 
41
		imageCourante = new Image();
42
		Protocole protocole = tousLesProtocoles.get(0);
43
		vue = Mockito.mock(MoyenneVotePresenteur.Vue.class,Mockito.RETURNS_DEEP_STUBS);
44
		mvp = new MoyenneVotePresenteur(imageCourante, protocole, vue);
45
		container = Mockito.mock(HasWidgets.class, Mockito.RETURNS_DEEP_STUBS);
46
		mvp.go(container);
47
	}
48
 
49
	@Test
637 aurelien 50
	public void testerVoteMemeUtilisateur() {
51
		// Un même utilisateur vote deux fois sur la même image, même protocole, en faisant des votes différents
629 aurelien 52
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
53
		mvp.setValeurVoteUtilisateur(3);
54
		mvp.enregistrerVote();
55
 
637 aurelien 56
		// la valeur du vote change mais le nombre de vote ne change pas, son vote est remplacé
57
		mvp.setValeurVoteUtilisateur(1);
629 aurelien 58
		mvp.enregistrerVote();
637 aurelien 59
		assertEquals(1, imageCourante.getVotesProtocoles(0).size());
60
		assertEquals(1, mvp.getValeurVoteTotal());
629 aurelien 61
	}
62
 
63
	@Test
637 aurelien 64
	public void testerTroisVotesUtilisateursDifferents() {
65
 
66
		// Trois utilisateur différents votent pour la même image et le même protocole
67
		CacheClient.getInstance().getUtilisateur().setId(0+"");
629 aurelien 68
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
69
		mvp.setValeurVoteUtilisateur(3);
70
		mvp.enregistrerVote();
71
 
637 aurelien 72
		CacheClient.getInstance().getUtilisateur().setId(1+"");
629 aurelien 73
		mvp.setValeurVoteUtilisateur(1);
74
		mvp.enregistrerVote();
75
		assertEquals(2, imageCourante.getVotesProtocoles(0).size());
76
		assertEquals(2, mvp.getValeurVoteTotal());
77
 
637 aurelien 78
		CacheClient.getInstance().getUtilisateur().setId(2+"");
629 aurelien 79
		mvp.setValeurVoteUtilisateur(5);
80
		mvp.enregistrerVote();
81
		assertEquals(3, imageCourante.getVotesProtocoles(0).size());
82
		assertEquals(3, mvp.getValeurVoteTotal());
637 aurelien 83
 
84
		// Le premier utilisateur change d'avis et modifie son vote
85
		CacheClient.getInstance().getUtilisateur().setId(0+"");
86
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
87
		mvp.setValeurVoteUtilisateur(5);
88
		mvp.enregistrerVote();
89
		// La moyenne des vote change mais le nombre de vote ne doit pas changer
90
		assertEquals(3, imageCourante.getVotesProtocoles(0).size());
91
		assertEquals(4, mvp.getValeurVoteTotal());
629 aurelien 92
	}
637 aurelien 93
 
94
	@Test
95
	public void testerDeuxVotesMemeUtilisateursProtocolesDifferents() {
96
		// Trois utilisateur différents votent pour la même image et le même protocole
97
		CacheClient.getInstance().getUtilisateur().setId(0+"");
98
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
99
		mvp.setValeurVoteUtilisateur(3);
100
		mvp.enregistrerVote();
101
	}
629 aurelien 102
}