Subversion Repositories eFlore/Applications.del

Rev

Rev 445 | Rev 534 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 445 Rev 446
Line 1... Line 1...
1
package org.tela_botanica.del.test.composants.pagination;
1
package org.tela_botanica.del.test.composants.pagination;
Line 2... Line 2...
2
 
2
 
3
import static org.junit.Assert.assertEquals;
3
import static org.junit.Assert.*;
Line 4... Line 4...
4
import static org.mockito.Mockito.when;
4
import static org.mockito.Mockito.when;
5
 
5
 
6
import org.junit.Before;
6
import org.junit.Before;
7
import org.junit.Test;
-
 
8
import org.mockito.Mockito;
-
 
9
import org.mockito.invocation.InvocationOnMock;
-
 
10
import org.mockito.stubbing.Answer;
7
import org.junit.Test;
11
import org.tela_botanica.del.client.cache.CacheClient;
-
 
12
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
-
 
13
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur.Vue;
8
import org.mockito.Mockito;
14
 
9
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
15
import com.google.gwt.event.dom.client.HasChangeHandlers;
10
import com.google.gwt.event.dom.client.HasChangeHandlers;
Line 16... Line 11...
16
import com.google.gwt.event.dom.client.HasClickHandlers;
11
import com.google.gwt.event.dom.client.HasClickHandlers;
17
import com.google.gwt.user.client.ui.HasWidgets;
12
import com.google.gwt.user.client.ui.HasWidgets;
-
 
13
 
-
 
14
public class PaginationPresenteurTest {
-
 
15
	
18
 
16
	/**
-
 
17
	 * Presenteur utilisé pour le test de synchro pagination
-
 
18
	 */
-
 
19
	PaginationPresenteur paginationHautPresenteur;
19
public class PaginationPresenteurTest {
20
	/**
20
 
21
	 * Presenteur utilisé pour le test de synchro pagination
-
 
22
	 */
-
 
23
	PaginationPresenteur paginationBasPresenteur;
-
 
24
	
21
	PaginationPresenteur paginationHautPresenteur;
25
	/**
22
	PaginationPresenteur paginationBasPresenteur;
26
	 * Presenteur utilisé seul qui ne doit pas réagir au évènements lancés par les deux autres
23
 
-
 
24
	PaginationPresenteur paginationPresenteurSeul;
-
 
25
 
-
 
26
	boolean boutonPremierePageEstAffiche;
27
	 */
27
	boolean boutonDernierePageEstAffiche;
28
	PaginationPresenteur paginationPresenteurSeul;
28
 
29
	
29
	@Before
30
    @Before
-
 
31
	public void setUp() {
30
	public void setUp() {
32
    	PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique();
31
		PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique();
33
		this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10, 1) {
32
		this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10, 1) {
34
 
-
 
35
			@Override
33
			@Override
36
			public void chargerElements(int debut, int fin) {
Line 34... Line 37...
34
			public void chargerElements(int debut, int fin) {
37
				// TODO Auto-generated method stub
35
				// TODO: tester avec des données factices, est-ce utile ici ?
38
				
36
			}
39
			}
-
 
40
 
37
 
41
			@Override
38
			@Override
-
 
39
			public void actualiserPasCache(int pas) {
42
			public void actualiserPasCache(int pas) {
40
				CacheClient.getInstance().setPasPagination(pas);
43
				// TODO Auto-generated method stub
41
			}
44
				
42
 
45
			}
Line 43... Line -...
43
		};
-
 
44
 
-
 
Line -... Line 46...
-
 
46
		};
-
 
47
				
45
		PaginationPresenteur.Vue vueHaut = creerMockVuePaginationPresenteurBasique();
48
		PaginationPresenteur.Vue vueHaut = creerMockVuePaginationPresenteurBasique();
Line 46... Line 49...
46
		this.paginationHautPresenteur = new PaginationPresenteur(vueHaut, 100, 10, 1) {
49
		this.paginationHautPresenteur = new PaginationPresenteur(vueHaut,100, 10, 1) {
47
 
50
 
-
 
51
 
48
			@Override
52
			@Override
49
			public void chargerElements(int debut, int fin) {
53
			public void actualiserPasCache(int pas) {	
50
 
-
 
51
			}
54
			}
52
 
55
 
53
			@Override
56
			@Override
54
			public void actualiserPasCache(int pas) {
57
			public void chargerElements(int debut, int fin) {
-
 
58
				// TODO Auto-generated method stub
55
 
59
				
56
			}
60
			}
57
 
-
 
Line 58... Line 61...
58
		};
61
		};
59
 
62
		
-
 
63
		PaginationPresenteur.Vue vueSeule = creerMockVuePaginationPresenteurBasique();
-
 
64
		this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10, 1) {
60
		PaginationPresenteur.Vue vueSeule = creerMockVuePaginationPresenteurBasique();
65
 
61
		this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10, 1) {
-
 
62
			@Override
66
			@Override
-
 
67
			public void actualiserPasCache(int pas) {}
-
 
68
 
-
 
69
			@Override
-
 
70
			public void chargerElements(int debut, int fin) {
-
 
71
				// TODO Auto-generated method stub
-
 
72
				
-
 
73
			}
-
 
74
		};
-
 
75
		
-
 
76
		HasWidgets containerMock = Mockito.mock(HasWidgets.class);
-
 
77
		
63
			public void chargerElements(int debut, int fin) {
78
		paginationHautPresenteur.setGroupePagination("pagination_synchro");
64
			}
79
		paginationBasPresenteur.setGroupePagination("pagination_synchro");
65
 
80
		
66
			@Override
81
		
67
			public void actualiserPasCache(int pas) {
82
		paginationHautPresenteur.go(containerMock);
68
			}
83
		paginationBasPresenteur.go(containerMock);
69
 
-
 
70
		};
-
 
71
	}
-
 
72
 
-
 
73
	@Test
-
 
74
	public void testAffichageBoutonPremiereDernierePage() {
84
		
75
 
-
 
76
		mockerMethodeAffichageBoutons(paginationPresenteurSeul.getVue());
-
 
77
 
-
 
78
		// TODO: voir comment mocker ces méthodes avec Benjamin car le test ne
-
 
79
		// passe alors que
-
 
80
		// ça fonctionne en pratique
-
 
81
		paginationPresenteurSeul.afficherLaPremierePage();
85
		paginationPresenteurSeul.go(containerMock);
82
		assertEquals(1, paginationPresenteurSeul.getPageCourante());
86
	}
83
		/*
87
		
84
		 * assertEquals(false,
-
 
85
		 * paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche());
-
 
86
		 * assertEquals(true,
-
 
87
		 * paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());
-
 
88
		 */
-
 
89
 
-
 
90
		paginationPresenteurSeul.afficherlaDernierePage();
-
 
91
		assertEquals(9, paginationPresenteurSeul.getPageCourante());
88
	@Test
92
		/*
89
	public void testSynchronisationChangementPageCourante() {
-
 
90
		
-
 
91
		assertEquals(1, paginationHautPresenteur.getPageCourante());
-
 
92
		assertEquals(1, paginationBasPresenteur.getPageCourante());
-
 
93
			
-
 
94
		paginationBasPresenteur.allerALapageSuivante();
-
 
95
		assertEquals(2, paginationHautPresenteur.getPageCourante());
-
 
96
	}
-
 
97
	
-
 
98
	@Test
-
 
99
	public void testSynchronisationChangementPasEtDecalage() {
-
 
100
		assertEquals(1, paginationHautPresenteur.getPageCourante());
-
 
101
		assertEquals(1, paginationBasPresenteur.getPageCourante());
-
 
102
			
-
 
103
		paginationBasPresenteur.allerALapageSuivante();
-
 
104
		paginationBasPresenteur.allerALapageSuivante();
-
 
105
		paginationBasPresenteur.allerALapageSuivante();
-
 
106
		assertEquals(4, paginationHautPresenteur.getPageCourante());
-
 
107
		
-
 
108
		paginationBasPresenteur.changerPas(5);
-
 
109
		assertEquals(5, paginationHautPresenteur.getPas());
-
 
110
		assertEquals(8, paginationBasPresenteur.getPageCourante());
-
 
111
	}
-
 
112
	
-
 
113
	@Test
-
 
114
	public void testSynchronisationChangementPas() {
-
 
115
		paginationBasPresenteur.changerPas(20);
-
 
116
		assertEquals(1, paginationBasPresenteur.getPageCourante());
-
 
117
		assertEquals(20, paginationHautPresenteur.getPas());
-
 
118
	}
-
 
119
	
-
 
120
	@Test
-
 
121
	public void testGroupePaginationDifferents() {
-
 
122
		paginationPresenteurSeul.allerALapageSuivante();
-
 
123
		assertEquals(2, paginationPresenteurSeul.getPageCourante());
93
		 * assertEquals(false,
124
		
94
		 * paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche());
125
		paginationBasPresenteur.allerAlaDernierePage();
95
		 * assertEquals(false,
126
		assertEquals(9, paginationHautPresenteur.getPageCourante());
96
		 * paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());
127
		assertEquals(9, paginationBasPresenteur.getPageCourante());
97
		 */
128
		
98
 
129
		assertEquals(2, paginationPresenteurSeul.getPageCourante());
99
	}
130
	}
100
 
131
	
101
	private PaginationPresenteur.Vue creerMockVuePaginationPresenteurBasique() {
132
	private PaginationPresenteur.Vue creerMockVuePaginationPresenteurBasique() {
102
 
133
		
103
		PaginationPresenteur.Vue vueMock = Mockito.mock(PaginationPresenteur.Vue.class);
134
		PaginationPresenteur.Vue vueMock =  Mockito.mock(PaginationPresenteur.Vue.class);
104
		HasWidgets zoneLiens = Mockito.mock(HasWidgets.class);
135
		HasWidgets zoneLiens = Mockito.mock(HasWidgets.class);
105
		HasChangeHandlers selecteurPas = Mockito.mock(HasChangeHandlers.class);
136
		HasChangeHandlers selecteurPas = Mockito.mock(HasChangeHandlers.class);
106
		HasClickHandlers boutonPrecedent = Mockito.mock(HasClickHandlers.class);
137
		HasClickHandlers boutonPrecedent = Mockito.mock(HasClickHandlers.class);
107
		HasClickHandlers boutonSuivant = Mockito.mock(HasClickHandlers.class);
138
		HasClickHandlers boutonSuivant = Mockito.mock(HasClickHandlers.class);
108
		HasClickHandlers boutonPremierePage = Mockito.mock(HasClickHandlers.class);
139
		HasClickHandlers boutonPremierePage = Mockito.mock(HasClickHandlers.class);
109
		HasClickHandlers boutonDernierePage = Mockito.mock(HasClickHandlers.class);
140
		HasClickHandlers boutonDernierePage = Mockito.mock(HasClickHandlers.class);
110
 
141
		
111
		when(vueMock.getZoneLiens()).thenReturn(zoneLiens);
142
		when(vueMock.getZoneLiens()).thenReturn(zoneLiens);
112
		when(vueMock.getSelecteurPas()).thenReturn(selecteurPas);
-
 
113
		when(vueMock.getBoutonPrecedent()).thenReturn(boutonPrecedent);
-
 
114
		when(vueMock.getBoutonSuivant()).thenReturn(boutonSuivant);
-
 
115
		when(vueMock.getBoutonPremierePage()).thenReturn(boutonPremierePage);
-
 
116
		when(vueMock.getBoutonDernierePage()).thenReturn(boutonDernierePage);
-
 
117
 
-
 
118
		return vueMock;
-
 
119
	}
-
 
120
 
-
 
121
	private void mockerMethodeAffichageBoutons(Vue vueMock) {
-
 
122
 
-
 
123
		when(vueMock.boutonPrecedentEstAffiche()).thenReturn(boutonPremierePageEstAffiche);
-
 
124
		when(vueMock.boutonSuivantEstAffiche()).thenReturn(boutonDernierePageEstAffiche);
-
 
125
 
-
 
126
		Mockito.doAnswer(new Answer<Object>() {
-
 
127
			public Object answer(InvocationOnMock invocation) {
-
 
128
				boutonPremierePageEstAffiche = true;
-
 
129
				return boutonPremierePageEstAffiche;
-
 
130
			}
-
 
131
		}).when(vueMock).afficherBoutonPrecedent();
-
 
132
 
-
 
133
		Mockito.doAnswer(new Answer<Object>() {
-
 
134
			public Object answer(InvocationOnMock invocation) {
-
 
135
				boutonDernierePageEstAffiche = true;
-
 
136
				return boutonDernierePageEstAffiche;
-
 
137
			}
-
 
138
		}).when(vueMock).afficherBoutonSuivant();
-
 
139
 
-
 
140
		Mockito.doAnswer(new Answer<Object>() {
-
 
141
			public Object answer(InvocationOnMock invocation) {
-
 
142
				boutonPremierePageEstAffiche = false;
-
 
143
				return boutonPremierePageEstAffiche;
-
 
144
			}
-
 
145
		}).when(vueMock).masquerBoutonPrecedent();
-
 
146
 
143
		when(vueMock.getSelecteurPas()).thenReturn(selecteurPas);