Subversion Repositories eFlore/Applications.del

Rev

Rev 399 | Rev 413 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
399 aurelien 1
package org.tela_botanica.del.test.composants.pagination;
2
 
3
import static org.junit.Assert.*;
4
import static org.mockito.Mockito.when;
5
 
6
import org.junit.Test;
7
import org.mockito.Mockito;
8
import org.tela_botanica.del.client.cache.CacheClient;
9
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
10
 
11
import com.google.gwt.event.dom.client.HasChangeHandlers;
12
import com.google.gwt.event.dom.client.HasClickHandlers;
13
import com.google.gwt.user.client.ui.HasWidgets;
14
 
15
public class PaginationPresenteurTest {
16
 
17
	PaginationPresenteur paginationHautPresenteur;
18
	PaginationPresenteur paginationBasPresenteur;
19
 
20
	@Test
400 aurelien 21
	public void TestSynchroWidgetPagination() {
399 aurelien 22
 
23
		PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteur();
24
		this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10) {
25
			@Override
26
			public void changerPage(int debut, int fin) {
27
				//TODO: tester avec des données factices, est-ce utile ici ?
28
			}
29
 
30
			@Override
31
			public void actualiserPasCache(int pas) {
32
				CacheClient.getInstance().setPasPagination(pas);
33
			}
34
 
35
			@Override
36
			public void synchroniser() {
37
				paginationHautPresenteur.setPas(getPas());
38
				paginationHautPresenteur.setPageCourante(getPageCourante());
39
				paginationHautPresenteur.setNbPages(getNbPages());
40
				paginationHautPresenteur.actualiserLiens();
41
			}
42
		};
43
 
44
		PaginationPresenteur.Vue vueHaut = creerMockVuePaginationPresenteur();
45
		this.paginationHautPresenteur = new PaginationPresenteur(vueHaut,100, 10) {
46
 
47
			@Override
48
			public void changerPage(int debut, int fin) {
49
				// tester des trucs
50
			}
51
 
52
			@Override
53
			public void actualiserPasCache(int pas) {
54
 
55
			}
56
 
57
			@Override
58
			public void synchroniser() {
59
				paginationBasPresenteur.setPas(getPas());
60
				paginationBasPresenteur.setPageCourante(getPageCourante());
61
				paginationBasPresenteur.setNbPages(getNbPages());
62
				paginationBasPresenteur.actualiserLiens();
63
			}
64
		};
65
 
66
		HasWidgets conteneur = Mockito.mock(HasWidgets.class);
67
 
68
		paginationBasPresenteur.go(conteneur);
69
		paginationHautPresenteur.go(conteneur);
70
 
71
		assertEquals(1, paginationHautPresenteur.getPageCourante());
72
		assertEquals(1, paginationBasPresenteur.getPageCourante());
73
 
74
		paginationHautPresenteur.changerPas(20);
75
		paginationHautPresenteur.synchroniser();
76
		assertEquals(20, paginationBasPresenteur.getPas());
77
		assertEquals(20, paginationHautPresenteur.getPas());
78
 
79
		paginationBasPresenteur.setPageCourante(4);
80
		paginationBasPresenteur.changerPage(4*20,5*20);
81
		paginationBasPresenteur.synchroniser();
82
 
83
		assertEquals(4, paginationHautPresenteur.getPageCourante());
84
 
85
		paginationBasPresenteur.changerPas(10);
86
		paginationBasPresenteur.synchroniser();
87
		assertEquals(8, paginationHautPresenteur.getPageCourante());
88
		assertEquals(8, paginationBasPresenteur.getPageCourante());
89
 
90
	}
91
 
92
	private PaginationPresenteur.Vue creerMockVuePaginationPresenteur() {
93
 
94
		PaginationPresenteur.Vue vueMock =  Mockito.mock(PaginationPresenteur.Vue.class);
95
		HasWidgets zoneLiens = Mockito.mock(HasWidgets.class);
96
		HasChangeHandlers selecteurPas = Mockito.mock(HasChangeHandlers.class);
97
		HasClickHandlers boutonPrecedent = Mockito.mock(HasClickHandlers.class);
98
		HasClickHandlers boutonSuivant = Mockito.mock(HasClickHandlers.class);
99
		HasClickHandlers boutonPremierePage = Mockito.mock(HasClickHandlers.class);
100
		HasClickHandlers boutonDernierePage = Mockito.mock(HasClickHandlers.class);
101
 
102
		when(vueMock.getZoneLiens()).thenReturn(zoneLiens);
103
		when(vueMock.getSelecteurPas()).thenReturn(selecteurPas);
104
		when(vueMock.getBoutonPrecedent()).thenReturn(boutonPrecedent);
105
		when(vueMock.getBoutonSuivant()).thenReturn(boutonSuivant);
106
		when(vueMock.getBoutonPremierePage()).thenReturn(boutonPremierePage);
107
		when(vueMock.getBoutonDernierePage()).thenReturn(boutonDernierePage);
108
 
109
		return vueMock;
110
	}
111
 
112
}