commit
6f7c024d2e
31
README.md
31
README.md
@ -1,19 +1,22 @@
|
||||
[](https://classroom.github.com/online_ide?assignment_repo_id=7908914&assignment_repo_type=AssignmentRepo)
|
||||
# <img src="https://raw.githubusercontent.com/IUTInfoAix-M2105/Syllabus/master/assets/logo.png" alt="class logo" class="logo"/> 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 :
|
||||
<https://classroom.github.com/a/VC0pQrhm>
|
||||
## 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.
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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(){
|
||||
|
@ -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;
|
||||
}
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user