From e050f6e049e7bb53e7b8fba33f3d22cebdfae3b4 Mon Sep 17 00:00:00 2001
From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com>
Date: Tue, 7 Jun 2022 22:24:33 +0200
Subject: [PATCH 1/3] =?UTF-8?q?D=C3=A9but=20du=20README?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/README.md b/README.md
index f5707e2..4bd83c6 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,22 @@
-[](https://classroom.github.com/online_ide?assignment_repo_id=7908914&assignment_repo_type=AssignmentRepo)
-#
Développement d'application SAE 2.01
+**SAE 2.01, TEAM COMCOMBRE**
-## IUT d’Aix-Marseille – Département Informatique Aix-en-Provence
+Dans ce README, nous allons essayer de résumer rapidement tout ce que nous avons fait lors de cette SAE, afin de vous faciliter la compréhension du code
+(Nous n'aurons peut-être pas le temps de tout expliquer ici)
-- **Ressource:** [R2.02](https://cache.media.enseignementsup-recherche.gouv.fr/file/SPE4-MESRI-17-6-2021/35/5/Annexe_17_INFO_BUT_annee_1_1411355.pdf)
-- **Responsables:**
- - [Sébastien Nedjar](mailto:sebastien.nedjar@univ-amu.fr)
- - [Cyril Pain-Barre](mailto:cyril.pain-barre@univ-amu.fr)
-- **Besoin d'aide ?**
- - Consulter et/ou créer des [issues](https://github.com/IUTInfoAix-R202/cours/issues).
- - [Email](mailto:sebastien.nedjar@univ-amu.fr) pour une question d'ordre privée, ou pour convenir d'un rendez-vous physique.
+## Interface :
-## Création de votre fork
+Notre interface peut se découper en trois fenêtres (notez le mot "fenêtre, car une fenêtre séparée ouvre effectivement)
-La première chose que vous allez faire est de créer un fork d'un dépôt. Pour ce faire, rendez-vous sur le lien suivant :
-
+## DAO :
+Le DAO est l'un des points forts de notre projet. Nous disposons de 3 DAO : JPA, JPA_MEMORY, et TEST
+- JPA est le DAO utilisé officiellement par l'application lors de son exécution par un utilisateur
+Les classes de ce DAO se trouvent dans le package `dao.jpa`
+- JPA_MEMORY est un DAO très similaire à JPA (il se sert des mêmes classes), à l'exception qu'il utilise une autre PersistenceUnit (voir persistence.xml) afin de faire une base de données en mémoire, qui est utilisée lors du test backend (voir BackendTest.java)
+Les classes de ce DAO sont les mêmes que le DAO JPA
+- TEST est un DAO ne reposant sur aucune base de données, les méthodes DAO crééent et renvoient eux-mêmes les données. ce DAO est utilisé pour le test de l'interface utilisateur (afin de ne pas le coupler à une base de données)
+Les classes de ce DAO se trouvent dans le package `dao.test`
-Vous devrez créer un fork par équipe. Une fois le fork créé, vous devrez ajouter manuellement vos collègues comme propriétaire du dépôt.
+## Tests :
+Comme dit précédemment, les tests de l'application sont séparés en deux parties : Backend, et Application
+- Les tests Backend servent à tester le DAO de manière isolée de l'application. Nous testons la structure du DAO, mais également les requêtes SQL faites.
+- Les tests d'Application servent à tester l'application, certains sont isolés du DAO, et d'autres utilisent le DAO TEST afin d'être encore découplés de la base de données.
\ No newline at end of file
From 2b784817b1ed44003b5c466d35c94c0c3480d966 Mon Sep 17 00:00:00 2001
From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com>
Date: Tue, 7 Jun 2022 22:24:43 +0200
Subject: [PATCH 2/3] =?UTF-8?q?d=C3=A9placement=20du=20DAO=20de=20test?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/fr/univ_amu/iut/{ => dao}/test/DAOAcademieTest.java | 2 +-
.../java/fr/univ_amu/iut/{ => dao}/test/DAODisciplineTest.java | 2 +-
.../java/fr/univ_amu/iut/{ => dao}/test/DAOFactoryTest.java | 2 +-
.../java/fr/univ_amu/iut/{ => dao}/test/DAORessourceTest.java | 2 +-
.../java/fr/univ_amu/iut/{ => dao}/test/DAOThematiqueTest.java | 2 +-
src/main/java/fr/univ_amu/iut/{ => dao}/test/DAOUsageTest.java | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
rename src/main/java/fr/univ_amu/iut/{ => dao}/test/DAOAcademieTest.java (95%)
rename src/main/java/fr/univ_amu/iut/{ => dao}/test/DAODisciplineTest.java (94%)
rename src/main/java/fr/univ_amu/iut/{ => dao}/test/DAOFactoryTest.java (96%)
rename src/main/java/fr/univ_amu/iut/{ => dao}/test/DAORessourceTest.java (96%)
rename src/main/java/fr/univ_amu/iut/{ => dao}/test/DAOThematiqueTest.java (95%)
rename src/main/java/fr/univ_amu/iut/{ => dao}/test/DAOUsageTest.java (98%)
diff --git a/src/main/java/fr/univ_amu/iut/test/DAOAcademieTest.java b/src/main/java/fr/univ_amu/iut/dao/test/DAOAcademieTest.java
similarity index 95%
rename from src/main/java/fr/univ_amu/iut/test/DAOAcademieTest.java
rename to src/main/java/fr/univ_amu/iut/dao/test/DAOAcademieTest.java
index d8f95a1..8ab3f6a 100644
--- a/src/main/java/fr/univ_amu/iut/test/DAOAcademieTest.java
+++ b/src/main/java/fr/univ_amu/iut/dao/test/DAOAcademieTest.java
@@ -1,4 +1,4 @@
-package fr.univ_amu.iut.test;
+package fr.univ_amu.iut.dao.test;
import fr.univ_amu.iut.dao.DAOAcademie;
import fr.univ_amu.iut.model.Academie;
diff --git a/src/main/java/fr/univ_amu/iut/test/DAODisciplineTest.java b/src/main/java/fr/univ_amu/iut/dao/test/DAODisciplineTest.java
similarity index 94%
rename from src/main/java/fr/univ_amu/iut/test/DAODisciplineTest.java
rename to src/main/java/fr/univ_amu/iut/dao/test/DAODisciplineTest.java
index 0ed59fe..3e15d5a 100644
--- a/src/main/java/fr/univ_amu/iut/test/DAODisciplineTest.java
+++ b/src/main/java/fr/univ_amu/iut/dao/test/DAODisciplineTest.java
@@ -1,4 +1,4 @@
-package fr.univ_amu.iut.test;
+package fr.univ_amu.iut.dao.test;
import fr.univ_amu.iut.dao.DAODiscipline;
import fr.univ_amu.iut.model.Discipline;
diff --git a/src/main/java/fr/univ_amu/iut/test/DAOFactoryTest.java b/src/main/java/fr/univ_amu/iut/dao/test/DAOFactoryTest.java
similarity index 96%
rename from src/main/java/fr/univ_amu/iut/test/DAOFactoryTest.java
rename to src/main/java/fr/univ_amu/iut/dao/test/DAOFactoryTest.java
index 7088294..0873ff1 100644
--- a/src/main/java/fr/univ_amu/iut/test/DAOFactoryTest.java
+++ b/src/main/java/fr/univ_amu/iut/dao/test/DAOFactoryTest.java
@@ -1,4 +1,4 @@
-package fr.univ_amu.iut.test;
+package fr.univ_amu.iut.dao.test;
import fr.univ_amu.iut.dao.*;
import fr.univ_amu.iut.dao.factory.DAOFactory;
diff --git a/src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java b/src/main/java/fr/univ_amu/iut/dao/test/DAORessourceTest.java
similarity index 96%
rename from src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java
rename to src/main/java/fr/univ_amu/iut/dao/test/DAORessourceTest.java
index 0031db6..e57754c 100644
--- a/src/main/java/fr/univ_amu/iut/test/DAORessourceTest.java
+++ b/src/main/java/fr/univ_amu/iut/dao/test/DAORessourceTest.java
@@ -1,4 +1,4 @@
-package fr.univ_amu.iut.test;
+package fr.univ_amu.iut.dao.test;
import fr.univ_amu.iut.dao.DAORessource;
import fr.univ_amu.iut.model.Ressource;
diff --git a/src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java b/src/main/java/fr/univ_amu/iut/dao/test/DAOThematiqueTest.java
similarity index 95%
rename from src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java
rename to src/main/java/fr/univ_amu/iut/dao/test/DAOThematiqueTest.java
index 2a674d6..c93c6c7 100644
--- a/src/main/java/fr/univ_amu/iut/test/DAOThematiqueTest.java
+++ b/src/main/java/fr/univ_amu/iut/dao/test/DAOThematiqueTest.java
@@ -1,4 +1,4 @@
-package fr.univ_amu.iut.test;
+package fr.univ_amu.iut.dao.test;
import fr.univ_amu.iut.dao.DAOThematique;
import fr.univ_amu.iut.model.Thematique;
diff --git a/src/main/java/fr/univ_amu/iut/test/DAOUsageTest.java b/src/main/java/fr/univ_amu/iut/dao/test/DAOUsageTest.java
similarity index 98%
rename from src/main/java/fr/univ_amu/iut/test/DAOUsageTest.java
rename to src/main/java/fr/univ_amu/iut/dao/test/DAOUsageTest.java
index 48405e2..7d170d9 100644
--- a/src/main/java/fr/univ_amu/iut/test/DAOUsageTest.java
+++ b/src/main/java/fr/univ_amu/iut/dao/test/DAOUsageTest.java
@@ -1,4 +1,4 @@
-package fr.univ_amu.iut.test;
+package fr.univ_amu.iut.dao.test;
import java.util.ArrayList;
import java.util.List;
From feb31e48f592356ebb1b3de47a39f32f369514e5 Mon Sep 17 00:00:00 2001
From: Thomas Rubini <74205383+ThomasRubini@users.noreply.github.com>
Date: Tue, 7 Jun 2022 22:25:44 +0200
Subject: [PATCH 3/3] Un peu de documentation
---
src/main/java/fr/univ_amu/iut/DataMain.java | 5 ++++-
src/main/java/fr/univ_amu/iut/Launcher.java | 5 +++++
.../univ_amu/iut/dao/factory/DAOFactoryProducer.java | 2 +-
.../java/fr/univ_amu/iut/secret/SecretProvider.java | 6 ++++++
src/main/java/module-info.java | 2 +-
src/test/java/fr/univ_amu/iut/BackendTest.java | 11 +++++++++++
6 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/src/main/java/fr/univ_amu/iut/DataMain.java b/src/main/java/fr/univ_amu/iut/DataMain.java
index d51ca1c..50886c7 100644
--- a/src/main/java/fr/univ_amu/iut/DataMain.java
+++ b/src/main/java/fr/univ_amu/iut/DataMain.java
@@ -12,7 +12,10 @@ import fr.univ_amu.iut.model.*;
public class DataMain {
- // A executer une seule fois, pour populate la base de données
+ /*
+ Code utilitaire que nous avons utilisé pendant le développement de l'application, afin de remplir la base de donnée
+ **SUPPRIMER LES TABLES DE LA BASE DE DONNEES AVANT D'EXECUTER**
+ */
public static void main(String[] args) {
DAOFactory daoFactory = DAOFactoryProducer.getFactory(DAOType.JPA);
diff --git a/src/main/java/fr/univ_amu/iut/Launcher.java b/src/main/java/fr/univ_amu/iut/Launcher.java
index c6c7065..1d0fa2a 100644
--- a/src/main/java/fr/univ_amu/iut/Launcher.java
+++ b/src/main/java/fr/univ_amu/iut/Launcher.java
@@ -1,6 +1,11 @@
package fr.univ_amu.iut;
public class Launcher {
+
+ /*
+ Déployer l'application au travers d'un fichier .jar exécutable nous demandait
+ une classe main sans extends (sans lien avec JavaFX)
+ */
public static void main(String[] args) throws Exception {
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 55e2252..7d2dbc5 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
@@ -1,7 +1,7 @@
package fr.univ_amu.iut.dao.factory;
import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA;
-import fr.univ_amu.iut.test.DAOFactoryTest;
+import fr.univ_amu.iut.dao.test.DAOFactoryTest;
public class DAOFactoryProducer {
public static DAOFactory getFactory(DAOType type) {
diff --git a/src/main/java/fr/univ_amu/iut/secret/SecretProvider.java b/src/main/java/fr/univ_amu/iut/secret/SecretProvider.java
index 630e1e0..0d0bcdd 100644
--- a/src/main/java/fr/univ_amu/iut/secret/SecretProvider.java
+++ b/src/main/java/fr/univ_amu/iut/secret/SecretProvider.java
@@ -1,5 +1,11 @@
package fr.univ_amu.iut.secret;
+
+/*
+SecretProvider : API permettant de vérifier si le mot de passe entré est le bon
+Nous avons fait une interface afin de pouvoir créer facilement d'autres implémentations dans le futur
+(comme par exemple une implémentation faisant une requête web pour vérifier le mot de passe auprès d'un serveur)
+ */
public interface SecretProvider {
static SecretProvider getInstance(){
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 9028ea3..e2754f0 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -17,5 +17,5 @@ open module francefx {
exports fr.univ_amu.iut;
exports fr.univ_amu.iut.dao;
exports fr.univ_amu.iut.dao.factory;
- exports fr.univ_amu.iut.test;
+ exports fr.univ_amu.iut.dao.test;
}
\ No newline at end of file
diff --git a/src/test/java/fr/univ_amu/iut/BackendTest.java b/src/test/java/fr/univ_amu/iut/BackendTest.java
index 4a65f06..469b8fa 100644
--- a/src/test/java/fr/univ_amu/iut/BackendTest.java
+++ b/src/test/java/fr/univ_amu/iut/BackendTest.java
@@ -11,6 +11,13 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
+/*
+Tests unitaires servants à tester le backend JPA de l'application
+On utilise un JPA modifié (une persistenceUnit différente)
+afin de faire une base de données en mémoire*
+*/
+
+
public class BackendTest {
private static DAOFactory daoFactory;
@@ -110,6 +117,10 @@ public class BackendTest {
assertThat(list.get(0).getNom()).isEqualTo("Second usage");
}
+ /*
+ On essaye d'insérer la même donnée de nouveau (2 fois pour être sûr,
+ après tout les tests sont faits pour vérifier que l'application est robuste)
+ */
@Test
public void should_not_insert_again(){
daoFactory.createDAOThematique().insert(Thematique.ExpressionOrale);