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;
959 benjamin 14
import org.tela_botanica.del.client.services.rest.VoteProtocoleService;
629 aurelien 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();
814 aurelien 32
		protocol1.setNom("esthétique");
629 aurelien 33
		protocol1.setId(0);
34
 
35
		Protocole protocol2 = new Protocole();
814 aurelien 36
		protocol2.setNom("capitalisation de scan de feuilles");
629 aurelien 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);
959 benjamin 45
		VoteProtocoleService voteProtocoleService=Mockito.mock(VoteProtocoleService.class);
46
		mvp = new MoyenneVotePresenteur(imageCourante, protocole, vue, voteProtocoleService);
629 aurelien 47
		container = Mockito.mock(HasWidgets.class, Mockito.RETURNS_DEEP_STUBS);
48
		mvp.go(container);
49
	}
50
 
51
	@Test
637 aurelien 52
	public void testerVoteMemeUtilisateur() {
53
		// Un même utilisateur vote deux fois sur la même image, même protocole, en faisant des votes différents
629 aurelien 54
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
55
		mvp.setValeurVoteUtilisateur(3);
56
		mvp.enregistrerVote();
57
 
637 aurelien 58
		// la valeur du vote change mais le nombre de vote ne change pas, son vote est remplacé
59
		mvp.setValeurVoteUtilisateur(1);
629 aurelien 60
		mvp.enregistrerVote();
637 aurelien 61
		assertEquals(1, imageCourante.getVotesProtocoles(0).size());
62
		assertEquals(1, mvp.getValeurVoteTotal());
629 aurelien 63
	}
64
 
65
	@Test
637 aurelien 66
	public void testerTroisVotesUtilisateursDifferents() {
67
 
68
		// Trois utilisateur différents votent pour la même image et le même protocole
69
		CacheClient.getInstance().getUtilisateur().setId(0+"");
629 aurelien 70
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
71
		mvp.setValeurVoteUtilisateur(3);
72
		mvp.enregistrerVote();
73
 
637 aurelien 74
		CacheClient.getInstance().getUtilisateur().setId(1+"");
629 aurelien 75
		mvp.setValeurVoteUtilisateur(1);
76
		mvp.enregistrerVote();
77
		assertEquals(2, imageCourante.getVotesProtocoles(0).size());
78
		assertEquals(2, mvp.getValeurVoteTotal());
79
 
637 aurelien 80
		CacheClient.getInstance().getUtilisateur().setId(2+"");
629 aurelien 81
		mvp.setValeurVoteUtilisateur(5);
82
		mvp.enregistrerVote();
83
		assertEquals(3, imageCourante.getVotesProtocoles(0).size());
84
		assertEquals(3, mvp.getValeurVoteTotal());
637 aurelien 85
 
86
		// Le premier utilisateur change d'avis et modifie son vote
87
		CacheClient.getInstance().getUtilisateur().setId(0+"");
88
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
89
		mvp.setValeurVoteUtilisateur(5);
90
		mvp.enregistrerVote();
91
		// La moyenne des vote change mais le nombre de vote ne doit pas changer
92
		assertEquals(3, imageCourante.getVotesProtocoles(0).size());
93
		assertEquals(4, mvp.getValeurVoteTotal());
629 aurelien 94
	}
637 aurelien 95
 
96
	@Test
97
	public void testerDeuxVotesMemeUtilisateursProtocolesDifferents() {
98
		// Trois utilisateur différents votent pour la même image et le même protocole
99
		CacheClient.getInstance().getUtilisateur().setId(0+"");
100
		assertEquals(1, imageCourante.getListeVotesProtocoles().size());
101
		mvp.setValeurVoteUtilisateur(3);
102
		mvp.enregistrerVote();
103
	}
629 aurelien 104
}