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(); |
} |
} |