Compare commits
10 Commits
6e988ca75a
...
developpem
Author | SHA1 | Date | |
---|---|---|---|
13016d5e9f | |||
|
877fecb923 | ||
bb891a52a8 | |||
6e303b8977 | |||
ed13a79a2f | |||
ed163b1a9a | |||
c1aa2e4775 | |||
894688c5f0 | |||
7970ca8df6 | |||
d0db3d84a3 |
4
aLire.txt
Normal file
4
aLire.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
dépôt gitea : https://gitea.lyc-lecastel.fr/delphine.thevenot/2026TestsBibliotheque.git
|
||||
branche : developpement
|
||||
|
||||
multibranches, fusions difficiles, à revoir
|
4
readme.yaml
Normal file
4
readme.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Projet Gestion d'un bibliothèque
|
||||
support pour découvrir les tests : unitaire, d'intégration, fonctionnels
|
||||
Java, JUNIT
|
||||
promo 2026 - D5 - A01 à A04
|
@@ -2,7 +2,11 @@
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.mycompany.bibliotheque.Contrôle;
|
||||
package com.mycompany.bibliotheque.Controle;
|
||||
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
import com.mycompany.bibliotheque.Metier.Utilisateur;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* Classe de contrôle de la classe Livre
|
||||
@@ -47,9 +51,16 @@ public class LivreValide {
|
||||
|
||||
// 3. Auteur : non vide et pas de chiffres ou caractères spéciaux
|
||||
public static boolean isValidAuteur(String auteur) {
|
||||
// TODO: implémenter la validation
|
||||
|
||||
//verification que auteur n'est pas vide ou null
|
||||
if (auteur == null || auteur.isBlank()) {
|
||||
return false;
|
||||
}
|
||||
//ajout d'un pattern pour avoir uniquement des minuscules/majuscules
|
||||
String pattern = "^[a-zA-Z -]+$";
|
||||
//verification boolean que le nom d'auteur corresponde au patterne
|
||||
return auteur.matches(pattern);
|
||||
}
|
||||
|
||||
// 4. Titre : longueur maximale 200 caractères
|
||||
public static boolean isLongueurTitreValid(String titre) {
|
||||
@@ -63,8 +74,8 @@ public class LivreValide {
|
||||
|
||||
// 5. Titre : non null et au moins 2 caractères
|
||||
public static boolean isContenuTitreValide(String titre) {
|
||||
// TODO Steve: implémenter la validation
|
||||
if (titre == null) {
|
||||
// TODO Steve: implémenter la validation
|
||||
if (titre == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -72,4 +83,39 @@ public class LivreValide {
|
||||
|
||||
return contenuValide;
|
||||
}
|
||||
|
||||
/**
|
||||
* IsDisponible()
|
||||
* Vérifier livre pas déjà emprunté
|
||||
* @author Emile
|
||||
*/
|
||||
public static boolean isDisponible (Livre leLivre){
|
||||
boolean valide = true;
|
||||
if(leLivre.isEmprunte()){
|
||||
valide = false;
|
||||
}
|
||||
return valide;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* IsDisponible()
|
||||
* Vérifier livre pas déjà emprunté
|
||||
* @author Morgann/Emile
|
||||
*/
|
||||
public static boolean retourLivre(Utilisateur user){
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int i=0;
|
||||
for(Livre unLivre:user.getEmprunts()){
|
||||
i++;
|
||||
System.out.println(i+". "+unLivre.getTitre());
|
||||
}
|
||||
System.out.print("Merci de faire votre choix : ");
|
||||
int choix = sc.nextInt();
|
||||
Livre leLivre = user.getEmprunts().get(choix-1);
|
||||
|
||||
leLivre.setEmprunte(false);
|
||||
user.getEmprunts().remove(leLivre);
|
||||
return leLivre.isEmprunte();
|
||||
}
|
||||
}
|
@@ -10,10 +10,11 @@ package com.mycompany.bibliotheque;
|
||||
*/
|
||||
|
||||
|
||||
import com.mycompany.bibliotheque.Métier.Bibliotheque;
|
||||
import com.mycompany.bibliotheque.Métier.Emprunt;
|
||||
import com.mycompany.bibliotheque.Métier.Utilisateur;
|
||||
import com.mycompany.bibliotheque.Métier.Livre;
|
||||
import com.mycompany.bibliotheque.Metier.Bibliotheque;
|
||||
import com.mycompany.bibliotheque.Metier.Emprunt;
|
||||
import com.mycompany.bibliotheque.Metier.Utilisateur;
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class GestionBibliotheque {
|
||||
@@ -21,8 +22,9 @@ public class GestionBibliotheque {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int choix=0;
|
||||
Bibliotheque laBibli = new Bibliotheque();
|
||||
ArrayList<Livre> mesLivres = new ArrayList<>();
|
||||
Livre l1 = new Livre("Le secret des secrets","Dan Brown","9782709668385",true);
|
||||
Utilisateur u1 = new Utilisateur("Alice");
|
||||
//Utilisateur u1 = new Utilisateur("Alice", mesLivres.add(l1));
|
||||
|
||||
System.out.println("Bienvenue dans la bibliothèque !");
|
||||
while (choix!=4){
|
||||
|
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.mycompany.bibliotheque.Metier;
|
||||
|
||||
import com.mycompany.bibliotheque.Controle.LivreValide;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Classe métier
|
||||
* @author dthev
|
||||
*/
|
||||
public class Bibliotheque {
|
||||
private List<Livre> lesLivres = new ArrayList<>();
|
||||
|
||||
// 5. ISBN doit être unique
|
||||
public boolean addLivre(Livre b) {
|
||||
//ajoute b si valide et si n'existe pas - à écrire
|
||||
String issues = "";
|
||||
if (!LivreValide.isValidIsbn(b.getIsbn())) issues += "1 ";
|
||||
if (!LivreValide.isValidTitre(b.getTitre())) issues += "2 ";
|
||||
if (!LivreValide.isValidAuteur(b.getAuteur())) issues += "3 ";
|
||||
if (!LivreValide.isLongueurTitreValid(b.getTitre())) issues += "4 ";
|
||||
if (!LivreValide.isContenuTitreValide(b.getTitre())) issues += "5";
|
||||
|
||||
System.out.println(issues);
|
||||
|
||||
if (issues.length() < 1) {
|
||||
System.out.println("valide");
|
||||
for (Livre livre : this.getLesLivres()) {
|
||||
if (livre.getIsbn().equals(b.getIsbn())) return false;
|
||||
}
|
||||
|
||||
lesLivres.add(b);
|
||||
|
||||
return true;
|
||||
} else return false;
|
||||
}
|
||||
|
||||
public List<Livre> getLesLivres() {
|
||||
return lesLivres;
|
||||
}
|
||||
|
||||
public void setLesLivres(List<Livre> lesLivres) {
|
||||
this.lesLivres = lesLivres;
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -2,10 +2,10 @@
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.mycompany.bibliotheque.Métier;
|
||||
package com.mycompany.bibliotheque.Metier;
|
||||
|
||||
import com.mycompany.bibliotheque.Métier.Utilisateur;
|
||||
import com.mycompany.bibliotheque.Métier.Livre;
|
||||
import com.mycompany.bibliotheque.Metier.Utilisateur;
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
|
||||
/**
|
||||
*
|
@@ -2,7 +2,7 @@
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.mycompany.bibliotheque.Métier;
|
||||
package com.mycompany.bibliotheque.Metier;
|
||||
|
||||
/**
|
||||
*
|
@@ -2,22 +2,21 @@
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.mycompany.bibliotheque.Métier;
|
||||
package com.mycompany.bibliotheque.Metier;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author dthev
|
||||
*/
|
||||
|
||||
import com.mycompany.bibliotheque.Métier.Livre;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Utilisateur {
|
||||
private String nom;
|
||||
private List<Livre> emprunts;
|
||||
private final String nom;
|
||||
private final ArrayList<Livre> emprunts;
|
||||
|
||||
public Utilisateur(String nom) {
|
||||
public Utilisateur(String nom, ArrayList<Livre> mesLivres) {
|
||||
this.nom = nom;
|
||||
this.emprunts = new ArrayList<>();
|
||||
}
|
||||
@@ -30,8 +29,18 @@ public class Utilisateur {
|
||||
return emprunts;
|
||||
}
|
||||
|
||||
|
||||
// TODO: ajouter un emprunt si l'utilisateur a moins de 3 livres
|
||||
/**
|
||||
* @author Medhi
|
||||
* @param livre
|
||||
*/
|
||||
public boolean emprunterLivre(Livre livre) {
|
||||
return false; // à compléter
|
||||
if (emprunts.size() < 3) {
|
||||
emprunts.add(livre);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.mycompany.bibliotheque.Métier;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Classe métier
|
||||
* @author dthev
|
||||
*/
|
||||
public class Bibliotheque {
|
||||
private List<Livre> lesLivres = new ArrayList<>();
|
||||
|
||||
// 5. ISBN doit être unique
|
||||
public boolean addLivre(Livre b) {
|
||||
//ajoute b si valide et si n'existe pas - à écrire
|
||||
lesLivres.add(b);
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<Livre> getLesLivres() {
|
||||
return lesLivres;
|
||||
}
|
||||
|
||||
public void setLesLivres(List<Livre> lesLivres) {
|
||||
this.lesLivres = lesLivres;
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -4,8 +4,8 @@
|
||||
*/
|
||||
package com.mycompany.bibliotheque;
|
||||
|
||||
import com.mycompany.bibliotheque.Métier.Bibliotheque;
|
||||
import com.mycompany.bibliotheque.Métier.Livre;
|
||||
import com.mycompany.bibliotheque.Metier.Bibliotheque;
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
import java.util.List;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -29,14 +29,50 @@ public class BibliothequeTest {
|
||||
*/
|
||||
@Test
|
||||
public void testAddLivre() {
|
||||
System.out.println("addLivre");
|
||||
Livre b = null;
|
||||
System.out.println("addLivre");
|
||||
Bibliotheque instance = new Bibliotheque();
|
||||
boolean expResult = false;
|
||||
boolean result = instance.addLivre(b);
|
||||
assertEquals(expResult, result);
|
||||
// TODO review the generated test code and remove the default call to fail.
|
||||
fail("The test case is a prototype.");
|
||||
|
||||
// Ajout d'un livre avec ISBN invalide
|
||||
Livre livre = new Livre("Naruto", "Masashi Kishimoto", "1234ABCD567", false);
|
||||
boolean ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Refus de l'ISBN invalide");
|
||||
assertFalse("L'ISBN du livre n'est pas censé être valide avec lettres !", ajoutLivre);
|
||||
|
||||
// Ajout d'un livre avec titre invalide
|
||||
livre = new Livre("<script>Dragon Ball</script>", "Akira Toriyama", "8762709652385", false);
|
||||
ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Refus de titre invalide");
|
||||
assertFalse("Le titre du livre n'est pas censé être valide avec des balises !", ajoutLivre);
|
||||
|
||||
// Ajout d'un livre avec auteur invalide
|
||||
livre = new Livre("Dr. STONE", "Bo1ch1", "8762207682385", false);
|
||||
ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Refus d'auteur invalide");
|
||||
assertFalse("L'auteur du livre n'est pas censé être valide avec des caractères non alphabétiques !", ajoutLivre);
|
||||
|
||||
// Ajout d'un livre avec longueur de titre invalide
|
||||
livre = new Livre("Dandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadandadan", "Yukinobu Tatsu", "1702203672985", false);
|
||||
ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Refus de longueur de titre invalide");
|
||||
assertFalse("Le titre n'est pas censé être valide avec une longueur excédant les 200 caractères !", ajoutLivre);
|
||||
|
||||
// Ajout d'un livre avec contenu de titre invalide
|
||||
livre = new Livre("007", "Steve Maingana", "3712503622788", false);
|
||||
ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Refus de contenu de titre invalide invalide");
|
||||
assertFalse("Le titre n'est pas censé être valide sans au moins 2 caractères alphabétiques !", ajoutLivre);
|
||||
|
||||
// Premier ajout de livre
|
||||
livre = new Livre("Frieren", "Kanehito Yamada", "6785708652385", false);
|
||||
ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Premier ajout d'un même livre");
|
||||
System.out.println(ajoutLivre);
|
||||
assertTrue("La bibliothèque ne permet pas de doublon !", ajoutLivre);
|
||||
|
||||
// Second ajout du même livre
|
||||
ajoutLivre = instance.addLivre(livre);
|
||||
System.out.println("Refus d'ajout du même livre");
|
||||
assertFalse("La bibliothèque ne permet pas de doublon !", ajoutLivre);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
package com.mycompany.bibliotheque;
|
||||
|
||||
import com.mycompany.bibliotheque.Métier.Livre;
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
|
@@ -4,7 +4,8 @@
|
||||
*/
|
||||
package com.mycompany.bibliotheque;
|
||||
|
||||
import com.mycompany.bibliotheque.Contrôle.LivreValide;
|
||||
import com.mycompany.bibliotheque.Controle.LivreValide;
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
@@ -113,17 +114,39 @@ public class LivreValideTest {
|
||||
|
||||
/**
|
||||
* Test of isValidAuteur method, of class LivreValide.
|
||||
* @author Medhi/Steve
|
||||
* @author Medhi
|
||||
*/
|
||||
@Test
|
||||
@Test
|
||||
public void testIsValidAuteur() {
|
||||
System.out.println("isValidAuteur");
|
||||
String auteur = "";
|
||||
boolean expResult = false;
|
||||
boolean result = LivreValide.isValidAuteur(auteur);
|
||||
assertEquals(expResult, result);
|
||||
// TODO review the generated test code and remove the default call to fail.
|
||||
fail("The test case is a prototype.");
|
||||
|
||||
//Verification Bonne
|
||||
String auteurTrue = "George";
|
||||
boolean expResult = true;
|
||||
boolean result = LivreValide.isValidAuteur(auteurTrue);
|
||||
assertEquals("Cas d'utilisation prévu",expResult, result);
|
||||
|
||||
//Verification avec un nombre
|
||||
String auteurFalse1 = "George4";
|
||||
boolean expResult1 = false;
|
||||
boolean result1 = LivreValide.isValidAuteur(auteurFalse1);
|
||||
assertEquals("Non valide car un nombre est présent", expResult1,result1);
|
||||
|
||||
//Verification avec des caractères spéciaux
|
||||
String auteurFalse2 = "George_";
|
||||
boolean expResult2 = false;
|
||||
boolean result2 = LivreValide.isValidAuteur(auteurFalse2);
|
||||
assertEquals("Non valide car des caractères spéciaux sont présent", expResult2,result2);
|
||||
|
||||
//Verification avec des espace
|
||||
String auteurTrue3 = "George Orwell";
|
||||
boolean result3 = LivreValide.isValidAuteur(auteurTrue3);
|
||||
assertTrue("",result3);
|
||||
|
||||
//Verification avec -
|
||||
String auteurTrue4 = "George-Orwell";
|
||||
boolean result4 = LivreValide.isValidAuteur(auteurTrue4);
|
||||
assertTrue("",result4);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -143,7 +166,7 @@ public class LivreValideTest {
|
||||
System.out.println("Titre invalide. Aucune valeur n'a été saisie\n");
|
||||
|
||||
//test 2 : titre inférieur à 200
|
||||
System.out.println("Test avec aucune valeur saisie");
|
||||
System.out.println("Test avec valeur saisie OK");
|
||||
String titre2 = "Hadal Blacksite bestiary";
|
||||
boolean expResult2 = true;
|
||||
boolean result2 = LivreValide.isLongueurTitreValid(titre2);
|
||||
@@ -158,14 +181,7 @@ public class LivreValideTest {
|
||||
System.out.println("Titre invalide. Titre trop long\n");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsContenuTitreValid() {
|
||||
System.out.println("isLongueurTitreValid");
|
||||
String titre = "";
|
||||
boolean expResult = false;
|
||||
boolean result = LivreValide.isLongueurTitreValid(titre);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of isTitreValid method, of class LivreValide.
|
||||
* @author Steve
|
||||
@@ -190,4 +206,30 @@ public class LivreValideTest {
|
||||
titre = "Ti!";
|
||||
assertTrue("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test testIsDisponible()
|
||||
* Vérifier livre pas déjà emprunté
|
||||
* @author Emile
|
||||
*/
|
||||
@Test
|
||||
public void testIsDisponible(){
|
||||
System.out.println("isDisponible");
|
||||
Livre unLivre = new Livre("Le comte de MonteCristo","Alexandre Dumas", "1234567891245", false);
|
||||
|
||||
System.out.println("Test1 : un livre disponible");
|
||||
boolean result1 = LivreValide.isDisponible(unLivre);
|
||||
assertTrue("Le chevron < n'est pas censé etre accepté", result1);
|
||||
System.out.println("Le test1 est validé");
|
||||
System.out.println("--------------------------------------------------");
|
||||
System.out.println(" ");
|
||||
|
||||
unLivre.setEmprunte(true);
|
||||
System.out.println("Test2 : un livre indiisponible");
|
||||
boolean result2 = LivreValide.isDisponible(unLivre);
|
||||
assertFalse("Le chevron < n'est pas censé etre accepté", result2);
|
||||
System.out.println("Le test2 est validé");
|
||||
System.out.println("--------------------------------------------------");
|
||||
System.out.println(" ");
|
||||
}
|
||||
}
|
||||
|
@@ -4,8 +4,9 @@
|
||||
*/
|
||||
package com.mycompany.bibliotheque;
|
||||
|
||||
import com.mycompany.bibliotheque.Métier.Utilisateur;
|
||||
import com.mycompany.bibliotheque.Métier.Livre;
|
||||
import com.mycompany.bibliotheque.Metier.Utilisateur;
|
||||
import com.mycompany.bibliotheque.Metier.Livre;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -52,19 +53,29 @@ public class UtilisateurTest {
|
||||
fail("The test case is a prototype.");
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Test of emprunterLivre method, of class Utilisateur.
|
||||
* @author Madhi
|
||||
*/
|
||||
@Test
|
||||
public void testEmprunterLivre() {
|
||||
System.out.println("emprunterLivre");
|
||||
Livre livre = null;
|
||||
Utilisateur instance = null;
|
||||
boolean expResult = false;
|
||||
boolean result = instance.emprunterLivre(livre);
|
||||
assertEquals(expResult, result);
|
||||
// TODO review the generated test code and remove the default call to fail.
|
||||
fail("The test case is a prototype.");
|
||||
|
||||
Livre a = new Livre("1984", "George Orwell", "1234567890123", false);
|
||||
Livre b = new Livre("1984", "Test2", "1232667890123", false);
|
||||
Livre c = new Livre ("1888","Test3","1232667890123",false);
|
||||
Livre d = new Livre ("1263","Test4","1236267890123",false);
|
||||
|
||||
ArrayList<Livre> mesLivres = new ArrayList<>();
|
||||
|
||||
Utilisateur utilisateur = new Utilisateur("Medhi", mesLivres);
|
||||
boolean result = utilisateur.emprunterLivre(a);
|
||||
|
||||
assertTrue("L'utilisateur a trop de livres",result);
|
||||
result = utilisateur.emprunterLivre(b);
|
||||
result = utilisateur.emprunterLivre(c);
|
||||
result = utilisateur.emprunterLivre(d);
|
||||
assertFalse("L'utilisateur n'a pas encore trois emprunts ",result);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user