Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 533 → Rev 534

/trunk/src/org/tela_botanica/del/uitest/ComparaisonEfloreVueTest.java
New file
0,0 → 1,42
package org.tela_botanica.del.uitest;
 
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEfloreVue;
 
import com.google.gwt.junit.client.GWTTestCase;
 
public class ComparaisonEfloreVueTest extends GWTTestCase {
 
// To run this test configure your junit launcher (Eclipse>Run>Run configurations
// classpath>Advanced>Select Folders and choose src/)
 
@Override
public String getModuleName() {
return "org.tela_botanica.del.Del";
}
 
public void testLoginView() {
 
Observation observation = new Observation();
String auteur = "benjamin";
observation.setAuteur(auteur);
observation.setNomRetenu("marronier");
observation.setNumNomenclatural("num nomenclatural ");
observation.setDateReleve("28/09/2011");
observation.setFamille("famille ");
observation.setLocalite("localite ");
 
Image image = new Image();
image.setIdImage("id image 1");
image.setUrlFormat("http://www.tela-botanica.org/appli:cel-img:00001%s%.jpg");
image.setUrl("http://www.tela-botanica.org/appli:cel-img:00001CRS.jpg");
image.setMiniature("http://www.tela-botanica.org/appli:cel-img:00001XS.jpg");
image.setObservation(observation);
 
ComparaisonEfloreVue vue = new ComparaisonEfloreVue();
vue.chargerImagePrincipale(image);
assertTrue(vue.getNomAuteur().getText().contains("benjamin"));
}
 
}
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImagePresenteur.java
24,22 → 24,21
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Panel;
 
public class ResultatRechercheImagePresenteur {
 
public abstract interface Vue extends IsWidget {
public interface Vue extends IsWidget {
public void startChargement();
 
public void nettoyer();
 
public void afficherPanneauxObservation(List<Panel> panneauxImagesAffichees);
public void afficherPanneauxObservation(List<HasWidgets> panneauxImagesAffichees);
 
public void creerPanneauxObservations(int size);
 
public void stopChargement();
 
public List<Panel> getPanneauxImages();
public List<HasWidgets> getPanneauxImages();
 
public HasWidgets getPanneauPagination();
 
80,7 → 79,7
InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
int IdProtocole = CacheClient.getInstance().getProtocoleCourant().getId();
informationsRechercheImages.setTriParNbVotes(ModeTri.TRI_ASCENDANT);
informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole+"");
informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole + "");
informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
chargerEtAfficherImagesPageEnCours();
}
93,7 → 92,7
InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
int IdProtocole = CacheClient.getInstance().getProtocoleCourant().getId();
informationsRechercheImages.setTriParNbVotes(ModeTri.TRI_DESCENDANT);
informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole+"");
informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole + "");
informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
chargerEtAfficherImagesPageEnCours();
}
120,13 → 119,13
chargerEtAfficherImagesPageEnCours();
}
});
 
BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
@Override
public void onChangementProtocole(EvenementChangementProtocole event) {
InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
if(informationsRechercheImages.getTriParNbVotes() != ModeTri.PAS_DE_TRI) {
informationsRechercheImages.setIdProtocoleSelectionne(event.getProtocole().getId()+"");
if (informationsRechercheImages.getTriParNbVotes() != ModeTri.PAS_DE_TRI) {
informationsRechercheImages.setIdProtocoleSelectionne(event.getProtocole().getId() + "");
chargerEtAfficherImagesPageEnCours();
}
}
164,16 → 163,16
 
}
 
private void afficherImages(ImageServiceResultat imageServiceResult) {
public void afficherImages(ImageServiceResultat imageServiceResult) {
 
List<Image> images = imageServiceResult.getImages();
 
List<Panel> panneauxImagesAffichees = new ArrayList<Panel>();
List<HasWidgets> panneauxImagesAffichees = new ArrayList<HasWidgets>();
vue.creerPanneauxObservations(imageServiceResult.getImages().size());
 
Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator();
Iterator<HasWidgets> panelIterator = vue.getPanneauxImages().iterator();
for (Image image : images) {
Panel imagePanel = panelIterator.next();
HasWidgets imagePanel = panelIterator.next();
ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue());
imagePresenteur.go(imagePanel);
panneauxImagesAffichees.add(imagePanel);
216,4 → 215,8
final int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination();
chargerEtAfficherImages(debut, fin);
}
 
public Vue getVue() {
return vue;
}
}
/trunk/src/org/tela_botanica/del/client/vues/rechercheimages/resultats/ResultatRechercheImageVue.java
9,6 → 9,7
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
 
16,7 → 17,7
 
@UiField
Panel panneauChargement;
private final List<Panel> panneauxImages = new ArrayList<Panel>();
private final List<HasWidgets> panneauxImages = new ArrayList<HasWidgets>();
private final int nbImagesPerPage = 10;
private int numImage = 0;
 
59,7 → 60,7
}
}
 
public void afficherPanneauxObservation(List<Panel> imagesPanel) {
public void afficherPanneauxObservation(List<HasWidgets> imagesPanel) {
 
imageTable.clear();
for (int i = 0; i < imagesPanel.size(); i++) {
108,7 → 109,7
return nbImagesPerPage;
}
 
public List<Panel> getPanneauxImages() {
public List<HasWidgets> getPanneauxImages() {
return panneauxImages;
}
/trunk/src/org/tela_botanica/del/client/modeles/Protocole.java
1,15 → 1,12
package org.tela_botanica.del.client.modeles;
 
import org.tela_botanica.del.client.i18n.I18n;
 
import com.sun.imageio.plugins.common.I18N;
 
public class Protocole {
 
private int id;
private String nom;
public static String ESTHETISME = I18n.getVocabulary().protocoleEsthetisme();
public static String IDENTIFICATION_AUTOMATIQUE = I18n.getVocabulary().protocoleIdentificationAuto();
public static String ESTHETISME = "ESTHETISME";
public static String IDENTIFICATION_AUTOMATIQUE = "IDENTIFICATION_AUTOMATIQUE";
 
public int getId() {
return id;
/trunk/src/org/tela_botanica/del/client/modeles/ImageServiceResultat.java
16,40 → 16,44
import com.google.gwt.user.client.Window;
 
public class ImageServiceResultat {
 
private List<Image> images;
 
private int nbTotalImagesPourLaRecherche;
 
public ImageServiceResultat(JSONValue retourJson) {
//TODO ajouter vérifications plus précises
double total = retourJson.isObject().get("total").isNumber().doubleValue();
nbTotalImagesPourLaRecherche = (int) total;
JSONArray tableauObs = retourJson.isObject().get("contenu").isArray();
images = new ArrayList<Image>();
int nbResultats = tableauObs.size();
for (int i = 0; i < nbResultats; i++) {
JSONObject imageJson = tableauObs.get(i).isObject();
Image image = UtilitairesServiceResultat.parserImageJSON(imageJson);
if(imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {
JSONObject observationJson = imageJson.get("observation").isObject();
image.setObservation(UtilitairesServiceResultat.parserObservationEtCreerPropositionDetermination(observationJson));
 
try {
// TODO ajouter vérifications plus précises
double total = retourJson.isObject().get("total").isNumber().doubleValue();
nbTotalImagesPourLaRecherche = (int) total;
 
JSONArray tableauObs = retourJson.isObject().get("contenu").isArray();
images = new ArrayList<Image>();
 
int nbResultats = tableauObs.size();
for (int i = 0; i < nbResultats; i++) {
 
JSONObject imageJson = tableauObs.get(i).isObject();
Image image = UtilitairesServiceResultat.parserImageJSON(imageJson);
 
if (imageJson.get("observation") != null && imageJson.get("observation").isObject() != null) {
JSONObject observationJson = imageJson.get("observation").isObject();
image.setObservation(UtilitairesServiceResultat.parserObservationEtCreerPropositionDetermination(observationJson));
}
 
if (imageJson.get("votes") != null && imageJson.get("votes").isArray() != null) {
JSONArray votes = imageJson.get("votes").isArray();
image.setVoteProtocoles(UtilitairesServiceResultat.parserVotesProtocoles(votes));
}
 
images.add(image);
}
if(imageJson.get("votes") != null && imageJson.get("votes").isArray() != null) {
JSONArray votes = imageJson.get("votes").isArray();
image.setVoteProtocoles(UtilitairesServiceResultat.parserVotesProtocoles(votes));
}
images.add(image);
} catch (Exception e) {
 
}
}
 
public List<Image> getImages() {
return images;
}
/trunk/src/org/tela_botanica/del/test/ui/ComparaisonEfloreVueTest.java
File deleted
/trunk/src/org/tela_botanica/del/test/vues/comparaisoneflore/ComparaisonEflorePresenteurTest.java
1,12 → 1,17
package org.tela_botanica.del.test.vues.comparaisoneflore;
 
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
 
import org.junit.Before;
import org.junit.Test;
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.modeles.Image;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.tela_botanica.del.client.services.rest.ImageService;
import org.tela_botanica.del.client.services.rest.VoteProtocoleService;
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
import org.tela_botanica.del.client.utils.MockDatasource;
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEflorePresenteur;
import org.tela_botanica.del.client.vues.comparaisoneflore.ComparaisonEflorePresenteur.Vue;
15,22 → 20,27
 
private ComparaisonEflorePresenteur comparaisonEflorePresenteur;
 
private Vue vue;
 
@Before
public void setUp() {
vue = mock(Vue.class);
comparaisonEflorePresenteur = new ComparaisonEflorePresenteur(vue, MockDatasource.getInstance(), MockDatasource.getInstance());
Vue vue = mock(Vue.class);
ImageService imageService = Mockito.mock(ImageService.class);
VoteProtocoleService voteProtocoleService = mock(VoteProtocoleService.class);
 
Image image = new Image();
image.setIdImage("id image 0");
CacheClient.getInstance().setImageCourante(image);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
comparaisonEflorePresenteur.setImagesEflore(MockDatasource.getInstance().getImages(0, 10));
return null;
}
}).when(imageService).getImagesEfloreParTaxon(Mockito.anyString(), Mockito.any(ImagesParTaxonCallback.class));
 
comparaisonEflorePresenteur = new ComparaisonEflorePresenteur(vue, voteProtocoleService, imageService);
comparaisonEflorePresenteur.chargerObservationsEflore();
 
}
 
@Test
public void testChargerImages() {
assertTrue(comparaisonEflorePresenteur.getImagesEflore().size() > 0);
assertTrue(comparaisonEflorePresenteur.getImagesEflore().size() == 10);
}
 
}
/trunk/src/org/tela_botanica/del/test/vues/rechercheimages/ResultatRechercheImagePresenteurTest.java
1,41 → 1,33
package org.tela_botanica.del.test.vues.rechercheimages;
 
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
 
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import org.mockito.Mockito;
import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.services.rest.ImageService;
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur;
 
import com.google.gwt.user.client.ui.HasWidgets;
 
import static org.mockito.Mockito.*;
 
public class ResultatRechercheImagePresenteurTest {
 
private ResultatRechercheImagePresenteur resultatPresenteur;
private org.tela_botanica.del.client.vues.rechercheimages.moteur.MoteurRechercheImagePresenteur.Vue vueMoteurRecherche;
private org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur.Vue vueResultat;
private ImageService serviceImage;
 
@Before
public void setUp() throws Exception {
vueResultat = mock(org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur.Vue.class);
serviceImage = mock(ImageService.class);
 
vueResultat = mock(org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur.Vue.class, Mockito.RETURNS_MOCKS);
serviceImage = mock(ImageService.class);
resultatPresenteur = new ResultatRechercheImagePresenteur(serviceImage, vueResultat);
vueMoteurRecherche = mock(org.tela_botanica.del.client.vues.rechercheimages.moteur.MoteurRechercheImagePresenteur.Vue.class);
HasWidgets zoneResultats = mock(HasWidgets.class);
when(vueMoteurRecherche.getZoneResultats()).thenReturn(zoneResultats);
resultatPresenteur.go(vueMoteurRecherche.getZoneResultats());
}
 
@Test
public void testAfficherImages() {
//TODO: réfléchir avec les autres à quoi tester
assertSame("a", "a");
resultatPresenteur.chargerEtAfficherImagesPageEnCours();
assertEquals(CacheClient.getInstance().getPageCouranteRechercheImage(), 1);
}
 
}
/trunk/src/org/tela_botanica/del/test/vues/plateformedetermination/vote/barrerepartition/BarreRepartitionVotePresenteurTest.java
8,6 → 8,7
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.tela_botanica.del.client.modeles.MoyenneVote;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.modeles.VoteDetermination;
30,7 → 31,7
@Before
public void setUp() {
vue = mock(Vue.class);
vue = mock(Vue.class, Mockito.RETURNS_DEEP_STUBS);
barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(vue);
VoteDetermination voteDetermination = new VoteDetermination();
/trunk/src/org/tela_botanica/del/test/composants/pagination/PaginationPresenteurTest.java
1,6 → 1,6
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;
7,12 → 7,13
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
*/
21,117 → 22,102
* 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
* Presenteur utilisé seul qui ne doit pas réagir au évènements lancés par
* les deux autres
*/
PaginationPresenteur paginationPresenteurSeul;
@Before
 
@Before
public void setUp() {
PaginationPresenteur.Vue vueBas = creerMockVuePaginationPresenteurBasique();
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) {
this.paginationHautPresenteur = new PaginationPresenteur(vueHaut, 100, 10, 1) {
 
 
@Override
public void actualiserPasCache(int pas) {
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) {}
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 testSynchronisationChangementPasEtDecalage() {
assertEquals(1, paginationHautPresenteur.getPageCourante());
assertEquals(1, paginationBasPresenteur.getPageCourante());
paginationBasPresenteur.allerALapageSuivante();
paginationBasPresenteur.allerALapageSuivante();
paginationBasPresenteur.allerALapageSuivante();
assertEquals(4, paginationHautPresenteur.getPageCourante());
paginationBasPresenteur.changerPas(5);
assertEquals(5, paginationHautPresenteur.getPas());
assertEquals(8, paginationBasPresenteur.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(9, paginationHautPresenteur.getPageCourante());
assertEquals(9, paginationBasPresenteur.getPageCourante());
assertEquals(10, paginationHautPresenteur.getPageCourante());
assertEquals(10, paginationBasPresenteur.getPageCourante());
 
assertEquals(2, paginationPresenteurSeul.getPageCourante());
}
 
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);
138,7 → 124,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);
145,7 → 131,7
when(vueMock.getBoutonSuivant()).thenReturn(boutonSuivant);
when(vueMock.getBoutonPremierePage()).thenReturn(boutonPremierePage);
when(vueMock.getBoutonDernierePage()).thenReturn(boutonDernierePage);
 
return vueMock;
}
}