merge avec main
This commit is contained in:
commit
8d0d1dd81b
10
.github/workflows/maven.yml
vendored
10
.github/workflows/maven.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: Java CI with Maven
|
||||
name: Java CI/CD with Maven
|
||||
|
||||
on:
|
||||
- push
|
||||
@ -15,7 +15,13 @@ jobs:
|
||||
distribution: 'zulu'
|
||||
java-package: 'jdk+fx'
|
||||
cache: maven
|
||||
- name: Run headless test
|
||||
- name: Build and run headless test
|
||||
uses: GabrielBB/xvfb-action@v1
|
||||
with:
|
||||
run: mvn -B package --file pom.xml
|
||||
|
||||
- name: Upload resulting executable
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: jar file
|
||||
path: target/sae201-1.0-SNAPSHOT.jar
|
||||
|
@ -14,42 +14,25 @@ public abstract class DAOBaseClassJPA<T> implements DAO<T> {
|
||||
}
|
||||
|
||||
public boolean insert(T etudiant) {
|
||||
try{
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.persist(etudiant);
|
||||
entityManager.getTransaction().commit();
|
||||
|
||||
return true;
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.persist(etudiant);
|
||||
entityManager.getTransaction().commit();
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean update(T obj) {
|
||||
try {
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.merge(obj);
|
||||
entityManager.getTransaction().commit();
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.merge(obj);
|
||||
entityManager.getTransaction().commit();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(T obj) {
|
||||
try {
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.remove(obj);
|
||||
entityManager.getTransaction().commit();
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.remove(obj);
|
||||
entityManager.getTransaction().commit();
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -17,34 +17,39 @@ public class DAOFactoryJPA implements DAOFactory {
|
||||
|
||||
private EntityManager entityManager;
|
||||
|
||||
|
||||
// Pas sûr de ou initialiser la base de données
|
||||
/*
|
||||
On part du principe que les données dans la base de données sont inconnues :
|
||||
certaines données peuvent être insérées et d'autres non. Nous faisons attention aux erreurs
|
||||
Nous essayons d'être persistents aux erreurs
|
||||
*/
|
||||
private String unitName;
|
||||
|
||||
|
||||
// Nous ne sommes pas sûrs de ou initialiser la base de données
|
||||
private <T> void insertAllHelper(DAO<T> dao, Collection<T> list){
|
||||
if(dao.findAll().size()==0){
|
||||
entityManager.getTransaction().begin();
|
||||
list.forEach(obj -> entityManager.persist(obj));
|
||||
System.out.println("LOOP");
|
||||
System.out.flush();
|
||||
for(var a : list){
|
||||
entityManager.persist(a);
|
||||
}
|
||||
// list.forEach(obj -> entityManager.persist(obj));
|
||||
entityManager.getTransaction().commit();
|
||||
}
|
||||
}
|
||||
|
||||
public DAOFactoryJPA(){
|
||||
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){
|
||||
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
|
||||
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(unitName);
|
||||
entityManager = entityManagerFactory.createEntityManager();
|
||||
}
|
||||
return entityManager;
|
||||
|
@ -40,16 +40,15 @@ public class Discipline implements Serializable {
|
||||
String nom;
|
||||
|
||||
public Discipline() {
|
||||
INSTANCES.add(this);
|
||||
}
|
||||
|
||||
public Discipline(String nom) {
|
||||
this();
|
||||
this.nom = nom;
|
||||
INSTANCES.add(this);
|
||||
}
|
||||
|
||||
public static List<Discipline> toutes() {
|
||||
return new ArrayList<>(INSTANCES);
|
||||
return INSTANCES;
|
||||
}
|
||||
|
||||
public static Discipline getById(int id){
|
||||
|
@ -15,43 +15,43 @@ public class RegionAcademique implements Serializable {
|
||||
|
||||
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
|
||||
|
||||
@Transient
|
||||
public static RegionAcademique AuvergneRhoneAlpes = new RegionAcademique("Région académique Auvergne-Rhône-Alpes");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique BourgogneFrancheComte = new RegionAcademique("Région académique Bourgogne-Franche-Comté");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Bretagne = new RegionAcademique("Région académique Bretagne");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique CentreValDeLoire = new RegionAcademique("Région académique Centre-Val de Loire");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Corse = new RegionAcademique("Région académique Corse");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique GrandEst = new RegionAcademique("Région académique Grand Est");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Guadeloupe = new RegionAcademique("Région académique Guadeloupe");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Guyane = new RegionAcademique("Région académique Guyane");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique HautsDeFrance = new RegionAcademique("Région académique Hauts-de-France");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique IleDeFrance = new RegionAcademique("Région académique Île-de-France");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Martinique = new RegionAcademique("Région académique Martinique");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Normandie = new RegionAcademique("Région académique Normandie");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique NouvelleAquitaine = new RegionAcademique("Région académique Nouvelle-Aquitaine");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Occitanie = new RegionAcademique("Région académique Occitanie");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique PaysDeLaLoire = new RegionAcademique("Région académique Pays de la Loire");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique ProvenceAlpesCoteDAzur = new RegionAcademique("Région académique Provence-Alpes-Côte d'Azur");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Reunion = new RegionAcademique("Région académique La Réunion");
|
||||
@Transient
|
||||
|
||||
public static RegionAcademique Mayotte = new RegionAcademique("Région académique Mayotte");
|
||||
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
int id;
|
||||
@ -60,10 +60,11 @@ public class RegionAcademique implements Serializable {
|
||||
String nom;
|
||||
|
||||
public RegionAcademique() {
|
||||
INSTANCES.add(this);
|
||||
|
||||
}
|
||||
|
||||
public RegionAcademique(String nom) {
|
||||
this();
|
||||
INSTANCES.add(this);
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
@ -87,6 +88,14 @@ public class RegionAcademique implements Serializable {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "RegionAcademique{" +
|
||||
"id=" + id +
|
||||
", nom='" + nom + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
|
@ -18,13 +18,7 @@ public class DAORessourceTest implements DAORessource {
|
||||
public List<Ressource> findAll() {
|
||||
List<Ressource> liste = new ArrayList<>();
|
||||
for (int i = 0; i < 12; i++){
|
||||
URL url = null;
|
||||
try {
|
||||
url = new URL("http://google.com");
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Ressource ressource = new Ressource("google", url, "site web");
|
||||
Ressource ressource = new Ressource("google", "http://google.com", "site web");
|
||||
liste.add(ressource);
|
||||
}
|
||||
return liste;
|
||||
|
@ -18,13 +18,7 @@ public class DAOThematiqueTest implements DAOThematique {
|
||||
public List<Thematique> findAll() {
|
||||
List<Thematique> liste = new ArrayList<>();
|
||||
for (int i = 0; i < 12; i++){
|
||||
URL url = null;
|
||||
try {
|
||||
url = new URL("http://google.com");
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Thematique thematique = new Thematique(String.valueOf(i));
|
||||
Thematique thematique = new Thematique("Thematique n° "+i);
|
||||
liste.add(thematique);
|
||||
}
|
||||
return liste;
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
<properties>
|
||||
<!-- database connection properties -->
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/devapp"/>
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://lagrottedeneotaku.hopto.org:6776/devapp"/>
|
||||
<property name="jakarta.persistence.jdbc.user" value="devapp"/>
|
||||
<property name="jakarta.persistence.jdbc.password" value="7kPoWBgoV5ahygxyXYGzaL"/>
|
||||
<!-- Nous ne devrions pas commit le mot de passe dans le dépot, mais... je ne pense pas que le projet ne respecte la moindre règle de sécurité de toute facon (pas d'architecture trois tiers)-->
|
||||
@ -15,6 +15,23 @@
|
||||
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
|
||||
<property name="eclipselink.ddl-generation" value="create-tables"/>
|
||||
|
||||
<!-- configure logging -->
|
||||
<property name="eclipselink.logging.level" value="INFO"/>
|
||||
<property name="eclipselink.logging.level.sql" value="FINE"/>
|
||||
<property name="eclipselink.logging.parameters" value="true"/>
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
<persistence-unit name="gestionUsagesPUTest" transaction-type="RESOURCE_LOCAL">
|
||||
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
|
||||
<exclude-unlisted-classes>false</exclude-unlisted-classes>
|
||||
|
||||
<properties>
|
||||
<!-- database connection properties -->
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:derby:memory:devapp;create=true"/>
|
||||
|
||||
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
|
||||
<property name="eclipselink.ddl-generation" value="create-tables"/>
|
||||
|
||||
<!-- configure logging -->
|
||||
<property name="eclipselink.logging.level" value="INFO"/>
|
||||
<property name="eclipselink.logging.level.sql" value="FINE"/>
|
||||
|
57
src/test/java/fr/univ_amu/iut/BackendTest.java
Normal file
57
src/test/java/fr/univ_amu/iut/BackendTest.java
Normal file
@ -0,0 +1,57 @@
|
||||
package fr.univ_amu.iut;
|
||||
|
||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
||||
import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA;
|
||||
import fr.univ_amu.iut.model.*;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.PrintStream;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
public class BackendTest {
|
||||
|
||||
private static DAOFactoryJPA daoFactory;
|
||||
|
||||
@BeforeAll
|
||||
public static void setUp() throws Exception {
|
||||
daoFactory = new DAOFactoryJPA("gestionUsagesPUTest");
|
||||
|
||||
Usage usage = new Usage();
|
||||
usage.setNom("Nom d'usage n°1");
|
||||
usage.addActeur(new Acteur("Thomas", "Developpeur"));
|
||||
usage.addActeur(new Acteur("Djalim", "Developpeur"));
|
||||
usage.addRessource(new Ressource("Google", "https://google.com", "Site web"));
|
||||
usage.setDiscipline(new Discipline("Informatique"));
|
||||
|
||||
daoFactory.createDAOUsage().insert(usage);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void beforeeach_works() {
|
||||
assertThat(true).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void thematiques_are_not_empty() {
|
||||
assertThat(daoFactory.createDAOThematique().findAll().size()).isNotZero();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void thematiques_contains_ecole_inclusive() {
|
||||
// on ne créé pas une fonction findByName car elle ne serait utilisée que pour le test
|
||||
|
||||
boolean ecoleInclusiveFound = false;
|
||||
for(Thematique thematique : daoFactory.createDAOThematique().findAll()) {
|
||||
if (thematique.getNom().equals("École inclusive")) {
|
||||
ecoleInclusiveFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assertThat(ecoleInclusiveFound).isTrue();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user