Subversion Repositories eFlore/Applications.del

Rev

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

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