Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 444 → Rev 445

/trunk/src/org/tela_botanica/del/test/composants/pagination/PaginationPresenteurTest.java
1,11 → 1,10
package org.tela_botanica.del.test.composants.pagination;
 
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
 
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
18,22 → 17,22
import com.google.gwt.user.client.ui.HasWidgets;
 
public class PaginationPresenteurTest {
 
PaginationPresenteur paginationHautPresenteur;
PaginationPresenteur paginationBasPresenteur;
 
PaginationPresenteur paginationPresenteurSeul;
 
boolean boutonPremierePageEstAffiche;
boolean boutonDernierePageEstAffiche;
@Before
 
@Before
public void setUp() {
PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique();
this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10) {
PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique();
this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10, 1) {
@Override
public void changerPage(int debut, int fin) {
//TODO: tester avec des données factices, est-ce utile ici ?
public void chargerElements(int debut, int fin) {
// TODO: tester avec des données factices, est-ce utile ici ?
}
 
@Override
40,102 → 39,68
public void actualiserPasCache(int pas) {
CacheClient.getInstance().setPasPagination(pas);
}
@Override
public void synchroniser() {
paginationHautPresenteur.setPas(getPas());
paginationHautPresenteur.setPageCourante(getPageCourante());
paginationHautPresenteur.setNbPages(getNbPages());
paginationHautPresenteur.actualiserLiens();
}
 
};
 
PaginationPresenteur.Vue vueHaut = creerMockVuePaginationPresenteurBasique();
this.paginationHautPresenteur = new PaginationPresenteur(vueHaut,100, 10) {
this.paginationHautPresenteur = new PaginationPresenteur(vueHaut, 100, 10, 1) {
 
@Override
public void changerPage(int debut, int fin) {
public void chargerElements(int debut, int fin) {
 
}
 
@Override
public void actualiserPasCache(int pas) {
 
}
 
@Override
public void synchroniser() {
paginationBasPresenteur.setPas(getPas());
paginationBasPresenteur.setPageCourante(getPageCourante());
paginationBasPresenteur.setNbPages(getNbPages());
paginationBasPresenteur.actualiserLiens();
}
};
 
PaginationPresenteur.Vue vueSeule = creerMockVuePaginationPresenteurBasique();
this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10) {
this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10, 1) {
@Override
public void changerPage(int debut, int fin) {}
public void chargerElements(int debut, int fin) {
}
 
@Override
public void actualiserPasCache(int pas) {}
@Override
public void synchroniser() {}
public void actualiserPasCache(int pas) {
}
 
};
}
@Test
public void testSynchroWidgetPagination() {
HasWidgets conteneur = Mockito.mock(HasWidgets.class);
paginationBasPresenteur.go(conteneur);
paginationHautPresenteur.go(conteneur);
 
assertEquals(1, paginationHautPresenteur.getPageCourante());
assertEquals(1, paginationBasPresenteur.getPageCourante());
paginationHautPresenteur.changerPas(20);
paginationHautPresenteur.synchroniser();
assertEquals(20, paginationBasPresenteur.getPas());
assertEquals(20, paginationHautPresenteur.getPas());
paginationBasPresenteur.setPageCourante(4);
paginationBasPresenteur.changerPage(4*20,5*20);
paginationBasPresenteur.synchroniser();
assertEquals(4, paginationHautPresenteur.getPageCourante());
paginationBasPresenteur.changerPas(10);
paginationBasPresenteur.synchroniser();
assertEquals(8, paginationHautPresenteur.getPageCourante());
assertEquals(8, paginationBasPresenteur.getPageCourante());
}
@Test
public void testAffichageBoutonPremiereDernierePage() {
 
mockerMethodeAffichageBoutons(paginationPresenteurSeul.getVue());
//TODO: voir comment mocker ces méthodes avec Benjamin car le test ne passe alors que
 
// TODO: voir comment mocker ces méthodes avec Benjamin car le test ne
// passe alors que
// ça fonctionne en pratique
paginationPresenteurSeul.premierePage();
paginationPresenteurSeul.afficherLaPremierePage();
assertEquals(1, paginationPresenteurSeul.getPageCourante());
/*assertEquals(false, paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche());
assertEquals(true, paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());*/
paginationPresenteurSeul.dernierePage();
/*
* assertEquals(false,
* paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche());
* assertEquals(true,
* paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());
*/
 
paginationPresenteurSeul.afficherlaDernierePage();
assertEquals(9, paginationPresenteurSeul.getPageCourante());
/*assertEquals(false, paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche());
assertEquals(false, paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());*/
/*
* assertEquals(false,
* paginationPresenteurSeul.getVue().boutonPrecedentEstAffiche());
* assertEquals(false,
* paginationPresenteurSeul.getVue().boutonSuivantEstAffiche());
*/
 
}
 
private PaginationPresenteur.Vue creerMockVuePaginationPresenteurBasique() {
PaginationPresenteur.Vue vueMock = Mockito.mock(PaginationPresenteur.Vue.class);
 
PaginationPresenteur.Vue vueMock = Mockito.mock(PaginationPresenteur.Vue.class);
HasWidgets zoneLiens = Mockito.mock(HasWidgets.class);
HasChangeHandlers selecteurPas = Mockito.mock(HasChangeHandlers.class);
HasClickHandlers boutonPrecedent = Mockito.mock(HasClickHandlers.class);
142,7 → 107,7
HasClickHandlers boutonSuivant = Mockito.mock(HasClickHandlers.class);
HasClickHandlers boutonPremierePage = Mockito.mock(HasClickHandlers.class);
HasClickHandlers boutonDernierePage = Mockito.mock(HasClickHandlers.class);
 
when(vueMock.getZoneLiens()).thenReturn(zoneLiens);
when(vueMock.getSelecteurPas()).thenReturn(selecteurPas);
when(vueMock.getBoutonPrecedent()).thenReturn(boutonPrecedent);
149,41 → 114,41
when(vueMock.getBoutonSuivant()).thenReturn(boutonSuivant);
when(vueMock.getBoutonPremierePage()).thenReturn(boutonPremierePage);
when(vueMock.getBoutonDernierePage()).thenReturn(boutonDernierePage);
 
return vueMock;
}
 
private void mockerMethodeAffichageBoutons(Vue vueMock) {
 
when(vueMock.boutonPrecedentEstAffiche()).thenReturn(boutonPremierePageEstAffiche);
when(vueMock.boutonSuivantEstAffiche()).thenReturn(boutonDernierePageEstAffiche);
 
Mockito.doAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) {
boutonPremierePageEstAffiche = true;
return boutonPremierePageEstAffiche;
}})
.when(vueMock).afficherBoutonPrecedent();
public Object answer(InvocationOnMock invocation) {
boutonPremierePageEstAffiche = true;
return boutonPremierePageEstAffiche;
}
}).when(vueMock).afficherBoutonPrecedent();
 
Mockito.doAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) {
boutonDernierePageEstAffiche = true;
return boutonDernierePageEstAffiche;
}})
.when(vueMock).afficherBoutonSuivant();
public Object answer(InvocationOnMock invocation) {
boutonDernierePageEstAffiche = true;
return boutonDernierePageEstAffiche;
}
}).when(vueMock).afficherBoutonSuivant();
 
Mockito.doAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) {
boutonPremierePageEstAffiche = false;
return boutonPremierePageEstAffiche;
}})
.when(vueMock).masquerBoutonPrecedent();
public Object answer(InvocationOnMock invocation) {
boutonPremierePageEstAffiche = false;
return boutonPremierePageEstAffiche;
}
}).when(vueMock).masquerBoutonPrecedent();
 
Mockito.doAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) {
boutonDernierePageEstAffiche = false;
return boutonDernierePageEstAffiche;
}})
.when(vueMock).masquerBoutonSuivant();
public Object answer(InvocationOnMock invocation) {
boutonDernierePageEstAffiche = false;
return boutonDernierePageEstAffiche;
}
}).when(vueMock).masquerBoutonSuivant();
}
}