Subversion Repositories eFlore/Applications.del

Rev

Rev 534 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.test.composants.pagination;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;

import com.google.gwt.event.dom.client.HasChangeHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.HasWidgets;

public class PaginationPresenteurTest {

        /**
         * Presenteur utilisé pour le test de synchro pagination
         */
        PaginationPresenteur paginationHautPresenteur;
        /**
         * Presenteur utilisé pour le test de synchro pagination
         */
        PaginationPresenteur paginationBasPresenteur;

        /**
         * Presenteur utilisé seul qui ne doit pas réagir au évènements lancés par
         * les deux autres
         */
        PaginationPresenteur paginationPresenteurSeul;

        @Before
        public void setUp() {
                PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique();
                this.paginationBasPresenteur = new PaginationPresenteur(vueBas, 100, 10, 1) {

                        @Override
                        public void chargerElements(int debut, int fin) {
                                // TODO Auto-generated method stub

                        }

                        @Override
                        public void actualiserPasCache(int pas) {
                                // TODO Auto-generated method stub

                        }
                };

                PaginationPresenteur.Vue vueHaut = creerMockVuePaginationPresenteurBasique();
                this.paginationHautPresenteur = new PaginationPresenteur(vueHaut, 100, 10, 1) {

                        @Override
                        public void actualiserPasCache(int pas) {
                        }

                        @Override
                        public void chargerElements(int debut, int fin) {
                                // TODO Auto-generated method stub

                        }
                };

                PaginationPresenteur.Vue vueSeule = creerMockVuePaginationPresenteurBasique();
                this.paginationPresenteurSeul = new PaginationPresenteur(vueSeule, 100, 10, 1) {

                        @Override
                        public void actualiserPasCache(int pas) {
                        }

                        @Override
                        public void chargerElements(int debut, int fin) {
                                // TODO Auto-generated method stub

                        }
                };

                HasWidgets containerMock = Mockito.mock(HasWidgets.class);

                paginationHautPresenteur.setGroupePagination("pagination_synchro");
                paginationBasPresenteur.setGroupePagination("pagination_synchro");

                paginationHautPresenteur.go(containerMock);
                paginationBasPresenteur.go(containerMock);

                paginationPresenteurSeul.go(containerMock);
        }

        @Test
        public void testSynchronisationChangementPageCourante() {

                assertEquals(1, paginationHautPresenteur.getPageCourante());
                assertEquals(1, paginationBasPresenteur.getPageCourante());

                paginationBasPresenteur.allerALapageSuivante();
                assertEquals(2, paginationHautPresenteur.getPageCourante());
        }

        @Test
        public void testSynchronisationChangementPas() {
                paginationBasPresenteur.changerPas(20);
                assertEquals(1, paginationBasPresenteur.getPageCourante());
                assertEquals(20, paginationHautPresenteur.getPas());
        }

        @Test
        public void testGroupePaginationDifferents() {
                paginationPresenteurSeul.allerALapageSuivante();
                assertEquals(2, paginationPresenteurSeul.getPageCourante());

                paginationBasPresenteur.allerAlaDernierePage();
                assertEquals(10, paginationHautPresenteur.getPageCourante());
                assertEquals(10, paginationBasPresenteur.getPageCourante());

                assertEquals(2, paginationPresenteurSeul.getPageCourante());
        }

        private PaginationPresenteur.Vue creerMockVuePaginationPresenteurBasique() {

                PaginationPresenteur.Vue vueMock = Mockito.mock(PaginationPresenteur.Vue.class);
                HasChangeHandlers saisiePageCourante = Mockito.mock(HasChangeHandlers.class);
                HasChangeHandlers selecteurPas = Mockito.mock(HasChangeHandlers.class);
                HasClickHandlers boutonPrecedent = Mockito.mock(HasClickHandlers.class);
                HasClickHandlers boutonSuivant = Mockito.mock(HasClickHandlers.class);
                HasClickHandlers boutonPremierePage = Mockito.mock(HasClickHandlers.class);
                HasClickHandlers boutonDernierePage = Mockito.mock(HasClickHandlers.class);

                when(vueMock.getSaisiePageCourante()).thenReturn(saisiePageCourante);
                when(vueMock.getSelecteurPas()).thenReturn(selecteurPas);
                when(vueMock.getBoutonPrecedent()).thenReturn(boutonPrecedent);
                when(vueMock.getBoutonSuivant()).thenReturn(boutonSuivant);
                when(vueMock.getBoutonPremierePage()).thenReturn(boutonPremierePage);
                when(vueMock.getBoutonDernierePage()).thenReturn(boutonDernierePage);

                return vueMock;
        }
}