Suite des tests du backend
This commit is contained in:
parent
6f8a39f00d
commit
af72f48e39
5
pom.xml
5
pom.xml
@ -20,6 +20,11 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
<version>3.16.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-controls</artifactId>
|
||||
|
@ -9,5 +9,5 @@ import java.util.List;
|
||||
|
||||
public interface DAOUsage extends DAO<Usage>{
|
||||
List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie);
|
||||
List<Usage> findByName(String substring);
|
||||
List<Usage> findByNamePart(String substring);
|
||||
}
|
||||
|
@ -40,9 +40,9 @@ public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
||||
|
||||
|
||||
@Override
|
||||
public List<Usage> findByName(String substring) {
|
||||
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findByName", Usage.class);
|
||||
query.setParameter("substring", "%"+substring+"%");
|
||||
public List<Usage> findByNamePart(String substring) {
|
||||
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findByNamePart", Usage.class);
|
||||
query.setParameter("substring", "%"+substring.toLowerCase()+"%");
|
||||
return query.getResultList();
|
||||
}
|
||||
}
|
||||
|
@ -15,21 +15,21 @@ public class Discipline implements Serializable {
|
||||
|
||||
private static final List<Discipline> INSTANCES = new ArrayList<>();
|
||||
|
||||
@Transient
|
||||
|
||||
public static Discipline Toutes = new Discipline("Toutes disciplines");
|
||||
@Transient
|
||||
|
||||
public static Discipline HistoireGeographie = new Discipline("Histoire-géographie");
|
||||
@Transient
|
||||
|
||||
public static Discipline PhysiqueChimie = new Discipline("Physique-chimie");
|
||||
@Transient
|
||||
|
||||
public static Discipline ScienceEtVieDeLaTerre = new Discipline("SVT");
|
||||
@Transient
|
||||
|
||||
public static Discipline Technologie = new Discipline("Technologie");
|
||||
@Transient
|
||||
|
||||
public static Discipline Francais = new Discipline("Français");
|
||||
@Transient
|
||||
|
||||
public static Discipline EconomieGestion = new Discipline("Économie Gestion");
|
||||
@Transient
|
||||
|
||||
public static Discipline LangueVivante = new Discipline("Langue Vivante");
|
||||
|
||||
@Id
|
||||
|
@ -26,8 +26,7 @@ public class Ressource implements Serializable {
|
||||
try{
|
||||
return new URL(url);
|
||||
}catch(MalformedURLException e){
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ import java.util.List;
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"),
|
||||
@NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"),
|
||||
@NamedQuery(name = "Usage.findByName", query = "SELECT p FROM Usage p WHERE p.nom LIKE :substring"),
|
||||
@NamedQuery(name = "Usage.findByNamePart", query = "SELECT p FROM Usage p WHERE LOWER(p.nom) LIKE :substring"),
|
||||
@NamedQuery(name = "Usage.findByCriterias", query = "SELECT p FROM Usage p WHERE" +
|
||||
"(:thematique is null or :thematique=p.thematique)" +
|
||||
"AND (:discipline is null or :discipline=p.discipline)"+
|
||||
|
@ -57,7 +57,7 @@ public class DAOUsageTest implements DAOUsage{
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Usage> findByName(String substring) {
|
||||
public List<Usage> findByNamePart(String substring) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
<properties>
|
||||
<!-- database connection properties -->
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://lagrottedeneotaku.hopto.org:6776/devapp"/>
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost/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)-->
|
||||
@ -27,7 +27,8 @@
|
||||
|
||||
<properties>
|
||||
<!-- database connection properties -->
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:derby:memory:devapp;create=true"/>
|
||||
<property name="jakarta.persistence.jdbc.driver" value="org.sqlite.JDBC"/>
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:sqlite::memory:"/>
|
||||
|
||||
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
|
||||
<property name="eclipselink.ddl-generation" value="create-tables"/>
|
||||
|
@ -1,17 +1,12 @@
|
||||
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.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 {
|
||||
|
||||
@ -22,11 +17,31 @@ public class BackendTest {
|
||||
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.setNom("Premier usage");
|
||||
usage.addActeur(new Acteur("Thomas", "Developpeur back-end"));
|
||||
usage.addActeur(new Acteur("Djalim", "Developpeur Linux"));
|
||||
usage.addRessource(new Ressource("Google", "https://google.com", "Site web"));
|
||||
usage.setDiscipline(new Discipline("Informatique"));
|
||||
usage.setThematique(Thematique.ExpressionOrale);
|
||||
usage.setDiscipline(Discipline.Francais);
|
||||
|
||||
daoFactory.createDAOUsage().insert(usage);
|
||||
|
||||
usage = new Usage();
|
||||
usage.setNom("Second usage");
|
||||
usage.addActeur(new Acteur("Lucas", "Hacker professionnel"));
|
||||
usage.addRessource(new Ressource("Google", "https://google.com", "Site web"));
|
||||
usage.addRessource(new Ressource("Stackoverflow", "http://stackoverflow.com", "Site web"));
|
||||
usage.setDiscipline(Discipline.Francais);
|
||||
usage.setThematique(Thematique.ClasseInversee);
|
||||
|
||||
daoFactory.createDAOUsage().insert(usage);
|
||||
|
||||
usage = new Usage();
|
||||
usage.setNom("Troisieme usage");
|
||||
usage.addActeur(new Acteur("Lucas", "Beta testeur"));
|
||||
usage.setDiscipline(Discipline.PhysiqueChimie);
|
||||
usage.setThematique(Thematique.CreationNumerique);
|
||||
|
||||
daoFactory.createDAOUsage().insert(usage);
|
||||
}
|
||||
@ -43,15 +58,58 @@ public class BackendTest {
|
||||
|
||||
@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();
|
||||
assertThat(daoFactory.createDAOThematique().findAll()).contains(Thematique.EcoleInclusive);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void disciplines_contains_svt() {
|
||||
assertThat(daoFactory.createDAODiscipline().findAll()).contains(Discipline.ScienceEtVieDeLaTerre);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void disciplines_does_not_contains_uninserted() {
|
||||
assertThat(daoFactory.createDAODiscipline().findAll()).doesNotContain(new Discipline("Bienséance"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usage_find_name_part() {
|
||||
var list = daoFactory.createDAOUsage().findByNamePart("Premier");
|
||||
assertThat(list.size()).isEqualTo(1);
|
||||
assertThat(list.get(0).getNom()).isEqualTo("Premier usage");
|
||||
|
||||
}
|
||||
@Test
|
||||
public void usage_find_name_part_with_case() {
|
||||
var list = daoFactory.createDAOUsage().findByNamePart("pReMiEr");
|
||||
assertThat(list.size()).isEqualTo(1);
|
||||
assertThat(list.get(0).getNom()).isEqualTo("Premier usage");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usage_find_by_thematique() {
|
||||
var list = daoFactory.createDAOUsage().findByCriterias(Thematique.ExpressionOrale, null, null);
|
||||
assertThat(list.size()).isEqualTo(1);
|
||||
assertThat(list.get(0).getNom()).isEqualTo("Premier usage");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usage_find_by_discipline(){
|
||||
var list = daoFactory.createDAOUsage().findByCriterias(null, Discipline.Francais, null);
|
||||
assertThat(list.size()).isEqualTo(2);
|
||||
assertThat(list.get(0).getNom()).isEqualTo("Premier usage");
|
||||
assertThat(list.get(1).getNom()).isEqualTo("Second usage");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usage_find_by_thematique_and_discipline(){
|
||||
var list = daoFactory.createDAOUsage().findByCriterias(Thematique.ClasseInversee, Discipline.Francais, null);
|
||||
assertThat(list.size()).isEqualTo(1);
|
||||
assertThat(list.get(0).getNom()).isEqualTo("Second usage");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void should_not_insert_again(){
|
||||
daoFactory.createDAOThematique().insert(Thematique.ExpressionOrale);
|
||||
daoFactory.createDAOThematique().insert(Thematique.ExpressionOrale);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user