Merge pull request #18 from IUTInfoAix-R202-2022/app_test

Test unitaires se basant sur la fenêtre de résultats
This commit is contained in:
Djalim Simaila 2022-06-07 17:17:02 +02:00 committed by GitHub
commit 6b6dd4e9fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 122 additions and 13 deletions

View File

@ -10,7 +10,7 @@ import fr.univ_amu.iut.model.Usage;
public class Donnees { public class Donnees {
private static Academie academieSelectionee = null; private static Academie academieSelectionee = null;
private static Thematique thematiqueSelectionee = null; private static Thematique thematiqueSelectionee = null;
private static Discipline disciplineSelectionee = Discipline.Toutes; private static Discipline disciplineSelectionee = null;
private static List<Usage> usagesObtenus; private static List<Usage> usagesObtenus;
public static List<Usage> getUsagesObtenus() { public static List<Usage> getUsagesObtenus() {
@ -36,7 +36,7 @@ public class Donnees {
if(thematiqueSelectionee == Donnees.thematiqueSelectionee){ if(thematiqueSelectionee == Donnees.thematiqueSelectionee){
thematiqueSelectionee = null; thematiqueSelectionee = null;
} }
System.out.println("Thematique selectionée : %s".formatted((thematiqueSelectionee == null)? "Aucune Thematique" : thematiqueSelectionee.getNom())); System.out.println("Thematique selectionée : %s".formatted(thematiqueSelectionee));
Donnees.thematiqueSelectionee = thematiqueSelectionee; Donnees.thematiqueSelectionee = thematiqueSelectionee;
} }
public static Discipline getDisciplineSelectionee() { public static Discipline getDisciplineSelectionee() {
@ -44,9 +44,9 @@ public class Donnees {
} }
public static void setDisciplineSelectionee(Discipline disciplineSelectionee) { public static void setDisciplineSelectionee(Discipline disciplineSelectionee) {
if(disciplineSelectionee == Donnees.disciplineSelectionee){ if(disciplineSelectionee == Donnees.disciplineSelectionee){
disciplineSelectionee = Discipline.Toutes; disciplineSelectionee = null;
} }
System.out.println("Discipline Selectionee : %s".formatted(disciplineSelectionee.getNom())); System.out.println("Discipline Selectionee : %s".formatted(disciplineSelectionee));
Donnees.disciplineSelectionee = disciplineSelectionee; Donnees.disciplineSelectionee = disciplineSelectionee;
} }

View File

@ -8,12 +8,15 @@ public class TableEntry {
private String nom; private String nom;
private String discipline; private String discipline;
private String thematique;
private String description; private String description;
private String niveau; private String niveau;
public TableEntry(Usage usage) { public TableEntry(Usage usage) {
nom = usage.getNom(); nom = usage.getNom();
thematique = usage.getThematique().getNom();
discipline = usage.getDiscipline().getNom(); discipline = usage.getDiscipline().getNom();
System.out.println("DESC="+usage.getDescription());
description = usage.getDescription(); description = usage.getDescription();
niveau = usage.getNiveau().getNom(); niveau = usage.getNiveau().getNom();
} }
@ -34,6 +37,15 @@ public class TableEntry {
this.discipline = discipline; this.discipline = discipline;
} }
public String getThematique() {
return thematique;
}
public void setThematique(String thematique) {
this.thematique = thematique;
}
public String getDescription() { public String getDescription() {
return description; return description;
} }
@ -51,4 +63,36 @@ public class TableEntry {
} }
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TableEntry that = (TableEntry) o;
if (nom != null ? !nom.equals(that.nom) : that.nom != null) return false;
if (discipline != null ? !discipline.equals(that.discipline) : that.discipline != null) return false;
if (description != null ? !description.equals(that.description) : that.description != null) return false;
return niveau != null ? niveau.equals(that.niveau) : that.niveau == null;
}
@Override
public int hashCode() {
int result = nom != null ? nom.hashCode() : 0;
result = 31 * result + (discipline != null ? discipline.hashCode() : 0);
result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + (niveau != null ? niveau.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "TableEntry{" +
"nom='" + nom + '\'' +
", discipline='" + discipline + '\'' +
", description='" + description + '\'' +
", niveau='" + niveau + '\'' +
'}';
}
} }

View File

@ -43,6 +43,8 @@ public class Controller implements Initializable {
DAOThematique daoThematique; DAOThematique daoThematique;
DAOUsage daoUsage; DAOUsage daoUsage;
Stage lastResultSceneOpened;
@FXML @FXML
private Pane stackPaneFrance; private Pane stackPaneFrance;
@ -205,6 +207,7 @@ public class Controller implements Initializable {
try { try {
resultats.setScene(new Scene(FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fResultat/FResultat.fxml")))); resultats.setScene(new Scene(FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fResultat/FResultat.fxml"))));
resultats.show(); resultats.show();
lastResultSceneOpened = resultats;
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -16,8 +16,6 @@ public class Discipline implements Serializable {
private static final List<Discipline> INSTANCES = new ArrayList<>(); private static final List<Discipline> INSTANCES = new ArrayList<>();
public static Discipline Toutes = new Discipline("Toutes disciplines");
public static Discipline HistoireGeographie = new Discipline("Histoire-géographie"); public static Discipline HistoireGeographie = new Discipline("Histoire-géographie");
public static Discipline PhysiqueChimie = new Discipline("Physique-chimie"); public static Discipline PhysiqueChimie = new Discipline("Physique-chimie");

View File

@ -21,14 +21,24 @@ public class DAOUsageTest implements DAOUsage{
@Override @Override
public List<Usage> findAll() { public List<Usage> findAll() {
List<Usage> usages = new ArrayList<>(); List<Usage> usages = new ArrayList<>();
for( int i = 0; i < 69 ; i++){ for( int i = 0; i < 42 ; i++){
Usage tmp = new Usage(); Usage tmp = new Usage();
tmp.setNom(String.valueOf(i)); tmp.setNom("Usage n°"+ i);
tmp.setDiscipline(Discipline.Technologie); tmp.setDiscipline(Discipline.Technologie);
tmp.setThematique(Thematique.CreationNumerique);
tmp.setNiveau(Niveau.Tous); tmp.setNiveau(Niveau.Tous);
tmp.setDescription("je suis un commentaire tres long mais surtout tres utile, je sert a tester l'interface graphique et la mettre au bout de ses limtes"); tmp.setDescription("je suis un commentaire tres long mais surtout tres utile, je sert a tester l'interface graphique et la mettre au bout de ses limites");
usages.add(tmp); usages.add(tmp);
} }
Usage tmp = new Usage();
tmp.setNom("Usage spécial 1");
tmp.setDiscipline(Discipline.PhysiqueChimie);
tmp.setThematique(Thematique.ClasseInversee);
tmp.setNiveau(Niveau.PremierDegre);
tmp.setDescription("Un usage très simple, pour un test de recherche");
usages.add(tmp);
return usages; return usages;
} }
@ -52,8 +62,15 @@ public class DAOUsageTest implements DAOUsage{
@Override @Override
public List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie) { public List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie) {
// TODO Auto-generated method stub List<Usage> list = new ArrayList<>();
return null; for(Usage usage : findAll()){
if((thematique==null||thematique==usage.getThematique())&&
(discipline==null||discipline==usage.getDiscipline())&&
(academie==null||academie==usage.getAcademie())){
list.add(usage);
}
}
return list;
} }
@Override @Override

View File

@ -1,11 +1,16 @@
package fr.univ_amu.iut; package fr.univ_amu.iut;
import fr.univ_amu.iut.fResultat.TableEntry;
import fr.univ_amu.iut.model.Discipline; import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.Niveau;
import fr.univ_amu.iut.model.Thematique; import fr.univ_amu.iut.model.Thematique;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.TableView;
import javafx.scene.layout.Pane; import javafx.scene.layout.Pane;
import javafx.stage.Stage; import javafx.stage.Stage;
import javafx.stage.Window;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
@ -69,7 +74,39 @@ public class AppTest {
} }
@Test @Test
void test_recherche(FxRobot robot) { void search_should_open_window(FxRobot robot) {
Pane disciplinesPane = (Pane) stage.getScene().lookup("#discipline");
Pane thematiquesPane = (Pane) stage.getScene().lookup("#thematique");
Node recherche = stage.getScene().lookup("#recherche");
robot.clickOn(disciplinesPane.getChildren().get(1));
robot.clickOn(thematiquesPane.getChildren().get(0));
int windowsCount = Stage.getWindows().size();
robot.clickOn(recherche);
assertThat(Stage.getWindows().size()).isEqualTo(windowsCount+1);
}
@Test
void search_window_should_have_1_result(FxRobot robot) {
Pane disciplinesPane = (Pane) stage.getScene().lookup("#discipline");
Pane thematiquesPane = (Pane) stage.getScene().lookup("#thematique");
Node recherche = stage.getScene().lookup("#recherche");
robot.clickOn(disciplinesPane.getChildren().get(1));
robot.clickOn(thematiquesPane.getChildren().get(0));
int windowsCount = Stage.getWindows().size();
robot.clickOn(recherche);
Scene resultScene = Stage.getWindows().get(windowsCount).getScene();
TableView<?> table = (TableView<?>) resultScene.lookup("#table");
assertThat(table.getItems().size()).isEqualTo(1);
}
@Test
void search_window_result_should_be_shown(FxRobot robot) {
Pane disciplinesPane = (Pane) stage.getScene().lookup("#discipline"); Pane disciplinesPane = (Pane) stage.getScene().lookup("#discipline");
Pane thematiquesPane = (Pane) stage.getScene().lookup("#thematique"); Pane thematiquesPane = (Pane) stage.getScene().lookup("#thematique");
Node recherche = stage.getScene().lookup("#recherche"); Node recherche = stage.getScene().lookup("#recherche");
@ -78,6 +115,16 @@ public class AppTest {
robot.clickOn(thematiquesPane.getChildren().get(0)); robot.clickOn(thematiquesPane.getChildren().get(0));
robot.clickOn(recherche); robot.clickOn(recherche);
Scene resultScene = Stage.getWindows().get(1).getScene();
TableView<TableEntry> table = (TableView<TableEntry>) resultScene.lookup("#table");
TableEntry entry = table.getItems().get(0);
assertThat(entry.getNom()).isEqualTo("Usage spécial 1");
assertThat(entry.getDescription()).isEqualTo("Un usage très simple, pour un test de recherche");
assertThat(entry.getDiscipline()).isEqualTo(Discipline.PhysiqueChimie.getNom());
assertThat(entry.getThematique()).isEqualTo(Thematique.ClasseInversee.getNom());
assertThat(entry.getNiveau()).isEqualTo(Niveau.PremierDegre.getNom());
} }
} }