Subversion Repositories eFlore/Applications.del

Rev

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