From 9cb365f8af875e38b1349daf4068f1b41f2d0023 Mon Sep 17 00:00:00 2001 From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com> Date: Tue, 7 Jun 2022 16:10:56 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20des=20tests=20de=20l'application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../univ_amu/iut/{Main.java => AppMain.java} | 10 ++- src/main/java/fr/univ_amu/iut/Launcher.java | 2 +- .../iut/dao/factory/DAOFactoryProducer.java | 3 +- .../fr/univ_amu/iut/dao/factory/DAOType.java | 3 +- .../univ_amu/iut/dao/jpa/DAOFactoryJPA.java | 4 -- .../java/fr/univ_amu/iut/fp/Controller.java | 4 +- .../univ_amu/iut/test/DAOThematiqueTest.java | 7 +- src/main/resources/META-INF/persistence.xml | 4 +- src/test/java/fr/univ_amu/iut/AppTest.java | 72 +++++++++++++++++++ .../java/fr/univ_amu/iut/BackendTest.java | 7 +- 10 files changed, 96 insertions(+), 20 deletions(-) rename src/main/java/fr/univ_amu/iut/{Main.java => AppMain.java} (83%) diff --git a/src/main/java/fr/univ_amu/iut/Main.java b/src/main/java/fr/univ_amu/iut/AppMain.java similarity index 83% rename from src/main/java/fr/univ_amu/iut/Main.java rename to src/main/java/fr/univ_amu/iut/AppMain.java index b341b38..4a4d3a9 100644 --- a/src/main/java/fr/univ_amu/iut/Main.java +++ b/src/main/java/fr/univ_amu/iut/AppMain.java @@ -9,12 +9,19 @@ import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.stage.Stage; -public class Main extends Application { +public class AppMain extends Application { private Scene scene = new Scene(new Pane()); private ScreenController gestionnaireDePages = new ScreenController(scene); + public static boolean testMode; + @Override public void start(Stage stage) throws IOException{ + + String res = getParameters().getNamed().get("testMode"); + testMode = res!=null&&res.equals("true"); + + ScreenController.addScreen("Acceuil",FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fp/fp.fxml"))); //TODO Ajouter les pages d'admin pour l'ajout des usages @@ -28,7 +35,6 @@ public class Main extends Application { } public static void main(String[] args) throws InterruptedException { - Thread.sleep(5000); launch(args); } } diff --git a/src/main/java/fr/univ_amu/iut/Launcher.java b/src/main/java/fr/univ_amu/iut/Launcher.java index 6ab56b4..c6c7065 100644 --- a/src/main/java/fr/univ_amu/iut/Launcher.java +++ b/src/main/java/fr/univ_amu/iut/Launcher.java @@ -2,6 +2,6 @@ package fr.univ_amu.iut; public class Launcher { public static void main(String[] args) throws Exception { - Main.main(args); + AppMain.main(args); } } diff --git a/src/main/java/fr/univ_amu/iut/dao/factory/DAOFactoryProducer.java b/src/main/java/fr/univ_amu/iut/dao/factory/DAOFactoryProducer.java index f02fbc0..55e2252 100644 --- a/src/main/java/fr/univ_amu/iut/dao/factory/DAOFactoryProducer.java +++ b/src/main/java/fr/univ_amu/iut/dao/factory/DAOFactoryProducer.java @@ -6,7 +6,8 @@ import fr.univ_amu.iut.test.DAOFactoryTest; public class DAOFactoryProducer { public static DAOFactory getFactory(DAOType type) { return switch (type){ - case JPA -> new DAOFactoryJPA(); + case JPA -> new DAOFactoryJPA("gestionUsagesPU"); + case JPA_MEMORY -> new DAOFactoryJPA("gestionUsagesPUMemory"); case TEST -> new DAOFactoryTest(); default -> throw new IllegalArgumentException(); }; diff --git a/src/main/java/fr/univ_amu/iut/dao/factory/DAOType.java b/src/main/java/fr/univ_amu/iut/dao/factory/DAOType.java index b947d4d..1f6a400 100644 --- a/src/main/java/fr/univ_amu/iut/dao/factory/DAOType.java +++ b/src/main/java/fr/univ_amu/iut/dao/factory/DAOType.java @@ -2,5 +2,6 @@ package fr.univ_amu.iut.dao.factory; public enum DAOType { JPA, - TEST + JPA_MEMORY, // JPA, mais sans persistence (base de données en mémoire) (utilisé pour le test de JPA) + TEST // utilisé pour le test de l'interface graphique } diff --git a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOFactoryJPA.java b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOFactoryJPA.java index 4751a59..402e13e 100644 --- a/src/main/java/fr/univ_amu/iut/dao/jpa/DAOFactoryJPA.java +++ b/src/main/java/fr/univ_amu/iut/dao/jpa/DAOFactoryJPA.java @@ -37,15 +37,11 @@ public class DAOFactoryJPA implements DAOFactory { public DAOFactoryJPA(String unitName){ this.unitName = unitName; - insertAllHelper(createDAORegionAcademique(), RegionAcademique.toutes()); insertAllHelper(createDAOAcademie(), Academie.toutes()); insertAllHelper(createDAOThematique(), Thematique.toutes()); insertAllHelper(createDAODiscipline(), Discipline.toutes()); } - public DAOFactoryJPA(){ - this("gestionUsagesPU"); - } public EntityManager getEntityManager() { if(entityManager == null){ diff --git a/src/main/java/fr/univ_amu/iut/fp/Controller.java b/src/main/java/fr/univ_amu/iut/fp/Controller.java index d7e7818..a2db2b1 100644 --- a/src/main/java/fr/univ_amu/iut/fp/Controller.java +++ b/src/main/java/fr/univ_amu/iut/fp/Controller.java @@ -1,5 +1,6 @@ package fr.univ_amu.iut.fp; +import fr.univ_amu.iut.AppMain; import fr.univ_amu.iut.Donnees; import fr.univ_amu.iut.dao.DAODiscipline; import fr.univ_amu.iut.dao.DAORessource; @@ -163,7 +164,8 @@ public class Controller implements Initializable { stackPaneFrance.getChildren().add(france); // init - daoFactory = DAOFactoryProducer.getFactory(DAOType.TEST); + + daoFactory = DAOFactoryProducer.getFactory(AppMain.testMode ? DAOType.TEST : DAOType.JPA); daoDiscipline = daoFactory.createDAODiscipline(); daoThematique = daoFactory.createDAOThematique(); daoUsage = daoFactory.createDAOUsage(); diff --git a/src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java b/src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java index fb60612..2a674d6 100644 --- a/src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java +++ b/src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java @@ -16,12 +16,7 @@ public class DAOThematiqueTest implements DAOThematique { @Override public List findAll() { - List liste = new ArrayList<>(); - for (int i = 0; i < 12; i++){ - Thematique thematique = new Thematique("Thematique n° "+i); - liste.add(thematique); - } - return liste; + return Thematique.toutes(); } @Override diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 9d40b7c..e4f2c23 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ - + org.eclipse.persistence.jpa.PersistenceProvider false diff --git a/src/test/java/fr/univ_amu/iut/AppTest.java b/src/test/java/fr/univ_amu/iut/AppTest.java index 4344440..58ae6d3 100644 --- a/src/test/java/fr/univ_amu/iut/AppTest.java +++ b/src/test/java/fr/univ_amu/iut/AppTest.java @@ -1,11 +1,83 @@ package fr.univ_amu.iut; +import fr.univ_amu.iut.model.Discipline; +import fr.univ_amu.iut.model.Thematique; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.layout.Pane; +import javafx.stage.Stage; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.testfx.api.FxRobot; +import org.testfx.framework.junit5.ApplicationExtension; +import org.testfx.framework.junit5.ApplicationTest; +import org.testfx.framework.junit5.Start; + +import java.util.Iterator; + import static org.assertj.core.api.Assertions.assertThat; +@ExtendWith(ApplicationExtension.class) public class AppTest { + + Stage stage; + + @BeforeEach + void setUpClass() throws Exception { + ApplicationTest.launch(AppMain.class, "--testMode=true"); + } + + @Start + public void start(Stage stage) throws Exception { + this.stage = stage; + } + @Test public void test_should_never_fail() { assertThat(true).isTrue(); } + + @Test + void should_initialize_stage_is_showing() { + assertThat(stage.isShowing()).isTrue(); + } + + @Test + void title_is_correct() { + assertThat(stage.getTitle()).isEqualTo("Carte des académie"); + } + + @Test + void boutons_ajoutes() { + Pane disciplinesPane = (Pane) stage.getScene().lookup("#discipline"); + Pane thematiquesPane = (Pane) stage.getScene().lookup("#thematique"); + + assertThat(disciplinesPane.getChildren().size()).isEqualTo(Discipline.toutes().size()); + assertThat(thematiquesPane.getChildren().size()).isEqualTo(Thematique.toutes().size()); + + for(int i=0;i