2 Commits

Author SHA1 Message Date
987db5ce7c test Bibliotheque addLivre 2025-10-03 13:10:13 +02:00
31b5eca6c3 test Bibliotheque addLivre 2025-10-03 11:56:08 +02:00
8 changed files with 78 additions and 221 deletions

View File

@@ -1,4 +0,0 @@
dépôt gitea : https://gitea.lyc-lecastel.fr/delphine.thevenot/2026TestsBibliotheque.git
branche : developpement
multibranches, fusions difficiles, à revoir

View File

@@ -4,18 +4,14 @@
*/ */
package com.mycompany.bibliotheque.Controle; 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 * Classe de contrôle de la classe Livre
* @author dthev * @author dthev
*/ */
public class LivreValide { public class LivreValide {
// 1. ISBN : exactement 13 chiffres // 1. ISBN : exactement 13 chiffres
public static boolean isValidIsbn(String isbn) { public static boolean isValidIsbn(String isbn) {
// TODO Emile: implémenter la validation // TODO Emile: implémenter la validation
boolean valide = true; boolean valide = true;
if(isbn.length() == 13){ if(isbn.length() == 13){
@@ -49,20 +45,19 @@ public class LivreValide {
return test; return test;
} }
// 3. Auteur : non vide et pas de chiffres ou caractères spéciaux // 3. Auteur : non vide et pas de chiffres ou caractères spéciaux
public static boolean isValidAuteur(String auteur) { public static boolean isValidAuteur(String auteur) {
//verification que auteur n'est pas vide ou null
//verification que auteur n'est pas vide ou null if (auteur == null || auteur.isBlank()) {
if (auteur == null || auteur.isBlank()) { return false;
return false; }
} //ajout d'un pattern pour avoir uniquement des minuscules/majuscules
//ajout d'un pattern pour avoir uniquement des minuscules/majuscules String pattern = "^[a-zA-Z -]+$";
String pattern = "^[a-zA-Z -]+$"; //verification boolean que le nom d'auteur corresponde au patterne
//verification boolean que le nom d'auteur corresponde au patterne return auteur.matches(pattern);
return auteur.matches(pattern);
} }
// 4. Titre : longueur maximale 200 caractères // 4. Titre : longueur maximale 200 caractères
public static boolean isLongueurTitreValid(String titre) { public static boolean isLongueurTitreValid(String titre) {
// TODO Morgann: implémenter la validation // TODO Morgann: implémenter la validation
boolean valide = false; boolean valide = false;
@@ -72,10 +67,10 @@ public class LivreValide {
return valide; return valide;
} }
// 5. Titre : non null et au moins 2 caractères // 5. Titre : non null et au moins 2 caractères
public static boolean isContenuTitreValide(String titre) { public static boolean isContenuTitreValide(String titre) {
// TODO Steve: implémenter la validation // TODO Steve: implémenter la validation
if (titre == null) { if (titre == null) {
return false; return false;
} }
@@ -83,39 +78,4 @@ public class LivreValide {
return contenuValide; 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 le choix du livre à restituer: ");
int choix = sc.nextInt();
Livre leLivre = user.getEmprunts().get(choix-1);
leLivre.setEmprunte(false);
user.getEmprunts().remove(leLivre);
return leLivre.isEmprunte();
}
} }

View File

@@ -10,12 +10,11 @@ package com.mycompany.bibliotheque;
*/ */
import com.mycompany.bibliotheque.Controle.LivreValide; import com.mycompany.bibliotheque.Metier.Utilisateur;
import com.mycompany.bibliotheque.Metier.Bibliotheque; import com.mycompany.bibliotheque.Metier.Bibliotheque;
import com.mycompany.bibliotheque.Metier.Emprunt; import com.mycompany.bibliotheque.Metier.Emprunt;
import com.mycompany.bibliotheque.Metier.Utilisateur; import com.mycompany.bibliotheque.Metier.Utilisateur;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Metier.Livre;
import java.util.ArrayList;
import java.util.Scanner; import java.util.Scanner;
public class GestionBibliotheque { public class GestionBibliotheque {
@@ -23,18 +22,15 @@ public class GestionBibliotheque {
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);
int choix=0; int choix=0;
Bibliotheque laBibli = new Bibliotheque(); Bibliotheque laBibli = new Bibliotheque();
ArrayList<Livre> mesLivres = new ArrayList<>();
Livre l1 = new Livre("Le secret des secrets","Dan Brown","9782709668385",true); Livre l1 = new Livre("Le secret des secrets","Dan Brown","9782709668385",true);
mesLivres.add(l1); Utilisateur u1 = new Utilisateur("Alice");
Utilisateur u1 = new Utilisateur("Alice", mesLivres);
System.out.println("Bienvenue dans la bibliothèque !"); System.out.println("Bienvenue dans la bibliothèque !");
while (choix!=4){ while (choix!=4){
System.out.println("1. Afficher un livre"); System.out.println("1. Afficher un livre");
System.out.println("2. Ajouter un livre"); System.out.println("2. Ajouter un livre");
System.out.println("3. Afficher les livres"); System.out.println("3. Afficher les livres");
System.out.println("4. Restituer un livre"); System.out.println("4. Quitter");
System.out.println("5. Quitter");
System.out.print("Merci de faire votre choix : "); System.out.print("Merci de faire votre choix : ");
choix = sc.nextInt(); choix = sc.nextInt();
switch (choix) { switch (choix) {
@@ -49,21 +45,6 @@ public class GestionBibliotheque {
System.out.println("---"+leLivre.toString()); System.out.println("---"+leLivre.toString());
} }
break; break;
case 4:
boolean restitution = LivreValide.retourLivre(u1);
String message = "";
if (restitution) {
message += "Le livre a été restitué !\n";
message += "\\nVous avez désormais "+u1.getEmprunts().size()+" livres empruntés sur 3 !\n";
message += "Merci, "+u1.getNom()+", d'avoir emprunté chez nous !";
} else {
message += "Le livre n'a pas été restitué.";
}
System.out.println(message);
break;
} }
} }
} }

View File

@@ -9,14 +9,15 @@ package com.mycompany.bibliotheque.Metier;
* @author dthev * @author dthev
*/ */
import com.mycompany.bibliotheque.Metier.Livre;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class Utilisateur { public class Utilisateur {
private final String nom; private String nom;
private final ArrayList<Livre> emprunts; private List<Livre> emprunts;
public Utilisateur(String nom, ArrayList<Livre> mesLivres) { public Utilisateur(String nom) {
this.nom = nom; this.nom = nom;
this.emprunts = new ArrayList<>(); this.emprunts = new ArrayList<>();
} }
@@ -29,18 +30,8 @@ public class Utilisateur {
return emprunts; return emprunts;
} }
// TODO: ajouter un emprunt si l'utilisateur a moins de 3 livres // TODO: ajouter un emprunt si l'utilisateur a moins de 3 livres
/**
* @author Medhi
* @param livre
*/
public boolean emprunterLivre(Livre livre) { public boolean emprunterLivre(Livre livre) {
if (emprunts.size() < 3) { return false; // à compléter
emprunts.add(livre);
return true;
} else {
return false;
} }
} }
}

View File

@@ -29,7 +29,7 @@ public class BibliothequeTest {
*/ */
@Test @Test
public void testAddLivre() { public void testAddLivre() {
System.out.println("addLivre"); System.out.println("addLivre");
Bibliotheque instance = new Bibliotheque(); Bibliotheque instance = new Bibliotheque();
// Ajout d'un livre avec ISBN invalide // Ajout d'un livre avec ISBN invalide
@@ -101,5 +101,4 @@ public class BibliothequeTest {
// TODO review the generated test code and remove the default call to fail. // TODO review the generated test code and remove the default call to fail.
fail("The test case is a prototype."); fail("The test case is a prototype.");
} }
} }

View File

@@ -16,8 +16,8 @@ public void testCreationLivre() {
assertNotNull(b); assertNotNull(b);
assertEquals("1984", b.getTitre()); assertEquals("1984", b.getTitre());
assertEquals("George Orwell", b.getAuteur()); // corrigé assertEquals("George Orwel", b.getAuteur()); // corrigé
assertEquals("1234567890123", b.getIsbn()); assertEquals("1234567890123", b.getIsbn());
assertFalse(b.isEmprunte()); // si la méthode existe assertFalse(b.isEmprunte()); // si la méthode existe
} }
} }

View File

@@ -5,7 +5,6 @@
package com.mycompany.bibliotheque; package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Controle.LivreValide; import com.mycompany.bibliotheque.Controle.LivreValide;
import com.mycompany.bibliotheque.Metier.Livre;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@@ -32,14 +31,14 @@ public class LivreValideTest {
System.out.println("isValidIsbn"); System.out.println("isValidIsbn");
//Test 1 : un isbn avec moins de 13 carractères //Test 1 : un isbn avec moins de 13 carractères
System.out.println("Test1 : un isbn avec moins de 13 carractères"); System.out.println("Test1 : un isbn avec moins de 13 carractères");
String isbn1 = "1234568912"; String isbn1 = "1234568912";
boolean expResult1 = false; boolean expResult1 = false;
boolean result1 = LivreValide.isValidIsbn(isbn1); boolean result1 = LivreValide.isValidIsbn(isbn1);
assertEquals("Le nombre de carractère est censé est trop petit",expResult1, result1); assertEquals("Le nombre de carractère est censé est trop petit",expResult1, result1);
assertFalse("Trop petit",LivreValide.isValidIsbn(isbn1)); assertFalse("Trop petit",LivreValide.isValidIsbn(isbn1));
System.out.println("Le test1 est validé"); System.out.println("Le test1 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
@@ -48,18 +47,18 @@ public class LivreValideTest {
String isbn2 = "123456789ABC2"; String isbn2 = "123456789ABC2";
boolean expResult2 = false; boolean expResult2 = false;
boolean result2 = LivreValide.isValidIsbn(isbn2); boolean result2 = LivreValide.isValidIsbn(isbn2);
assertEquals("Les alphas ne sont pas autorisés", expResult2, result2); assertEquals("Les alphas ne sont pas autorisés", expResult2, result2);
System.out.println("Le test2 est validé"); System.out.println("Le test2 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
//Test3 : mauvais nombre de carratère 15 //Test3 : mauvais nombre de carratère 15
System.out.println("Test3: isbn comportant plus de 13 chiffres"); System.out.println("Test3: isbn comportant plus de 13 chiffres");
String isbn3 = "1234568912123568"; String isbn3 = "1234568912123568";
boolean expResult3 = false; boolean expResult3 = false;
boolean result3 = LivreValide.isValidIsbn(isbn3); boolean result3 = LivreValide.isValidIsbn(isbn3);
assertEquals("Le nombre de carractère est censé est trop grand",expResult3, result3); assertEquals("Le nombre de carractère est censé est trop grand",expResult3, result3);
System.out.println("Le test3 est validé"); System.out.println("Le test3 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
@@ -68,8 +67,8 @@ public class LivreValideTest {
String isbn4 = "1234568912126"; String isbn4 = "1234568912126";
boolean expResult4 = true; boolean expResult4 = true;
boolean result4 = LivreValide.isValidIsbn(isbn4); boolean result4 = LivreValide.isValidIsbn(isbn4);
assertEquals("L'isbn est censé être valide",expResult4, result4); assertEquals("L'isbn est censé être valide",expResult4, result4);
System.out.println("Le test4 est validé"); System.out.println("Le test4 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
@@ -77,76 +76,54 @@ public class LivreValideTest {
/** /**
* Test of isValidTitre method, of class LivreValide. * Test of isValidTitre method, of class LivreValide.
* @author Salomé/Emile * @author Salomé/Emile
*/ */
@Test @Test
public void testIsValidTitre() { public void testIsValidTitre() {
System.out.println("isValidTitre"); System.out.println("isValidTitre");
System.out.println("Test1 : un titre comportant un '<'"); System.out.println("Test1 : un titre comportant un '<'");
String Titre1 = "La chat<perché"; String Titre1 = "La chat<perché";
boolean expResult1 = false; boolean expResult1 = false;
boolean result1 = LivreValide.isValidTitre(Titre1); boolean result1 = LivreValide.isValidTitre(Titre1);
assertEquals("Le chevron < n'est pas censé etre accepté",expResult1, result1); assertEquals("Le chevron < n'est pas censé etre accepté",expResult1, result1);
System.out.println("Le test1 est validé"); System.out.println("Le test1 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
System.out.println("Test2 : un titre comportant un '>'"); System.out.println("Test2 : un titre comportant un '>'");
String Titre2 = "La chat >perché"; String Titre2 = "La chat >perché";
boolean expResult2 = false; boolean expResult2 = false;
boolean result2 = LivreValide.isValidTitre(Titre2); boolean result2 = LivreValide.isValidTitre(Titre2);
assertEquals("Le chevron > n'est pas censé etre accepté",expResult2, result2); assertEquals("Le chevron > n'est pas censé etre accepté",expResult2, result2);
System.out.println("Le test2 est validé"); System.out.println("Le test2 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
System.out.println("Test3 : un titre valide"); System.out.println("Test3 : un titre valide");
String Titre3 = "La chat perché"; String Titre3 = "La chat perché";
boolean expResult3 = true; boolean expResult3 = true;
boolean result3 = LivreValide.isValidTitre(Titre3); boolean result3 = LivreValide.isValidTitre(Titre3);
assertEquals("Ce titre est cencé être valide",expResult3, result3); assertEquals("Ce titre est cencé être valide",expResult3, result3);
System.out.println("Le test3 est validé"); System.out.println("Le test3 est validé");
System.out.println("--------------------------------------------------"); System.out.println("--------------------------------------------------");
System.out.println(" "); System.out.println(" ");
} }
/** /**
* Test of isValidAuteur method, of class LivreValide. * Test of isValidAuteur method, of class LivreValide.
* @author Medhi * @author Medhi/Steve
*/ */
@Test @Test
public void testIsValidAuteur() { public void testIsValidAuteur() {
System.out.println("isValidAuteur"); System.out.println("isValidAuteur");
String auteur = "";
//Verification Bonne boolean expResult = false;
String auteurTrue = "George"; boolean result = LivreValide.isValidAuteur(auteur);
boolean expResult = true; assertEquals(expResult, result);
boolean result = LivreValide.isValidAuteur(auteurTrue); // TODO review the generated test code and remove the default call to fail.
assertEquals("Cas d'utilisation prévu",expResult, result); fail("The test case is a prototype.");
//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);
} }
/** /**
@@ -156,32 +133,21 @@ public class LivreValideTest {
@Test @Test
public void testIsLongueurTitreValid() { public void testIsLongueurTitreValid() {
System.out.println("isLongueurTitreValid"); System.out.println("isLongueurTitreValid");
String titre = "";
//test 1 : aucune valeur saisie boolean expResult = false;
System.out.println("Test avec aucune valeur saisie"); boolean result = LivreValide.isLongueurTitreValid(titre);
String titre1 = ""; assertEquals(expResult, result);
boolean expResult1 = false; // TODO review the generated test code and remove the default call to fail.
boolean result1 = LivreValide.isLongueurTitreValid(titre1); fail("The test case is a prototype.");
assertEquals(expResult1, result1);
System.out.println("Titre invalide. Aucune valeur n'a été saisie\n");
//test 2 : titre inférieur à 200
System.out.println("Test avec valeur saisie OK");
String titre2 = "Hadal Blacksite bestiary";
boolean expResult2 = true;
boolean result2 = LivreValide.isLongueurTitreValid(titre2);
assertEquals(expResult2, result2);
System.out.println("Titre valide. Le titre a moins de 200 caractères\n");
System.out.println("Test avec un titre avec plus de 200 caractères");
String titre3 = "YOU !! You could've had everything you ever wanted... Everything I ever wanted... And you still went out of your way to take everything I had left in the process. You entitled brat. You expect me to sit idly by and keep smiling, As if nothing ever happened? Oh, I'm smiling alright... GRINNING ear to ear. Don't even start with that 'following orders' schlock. You knew what you were doing all too well. Sure took your sweet time. Enjoyed every last second of it? Good. *Chuckles* EXCELLENT, even! I'll merely return the favor. And you bet, I'll be enjoying, every last moment, of THIS!!! THE BEST PART!? I get to do this, over, and over, again. You'll come back, I'll know, and I'll be waiting... You have no one to blame but yourself. You're in a hell of your own making... And you're NEVER GETTING OUT!!! *grrgh* WHAT!!! WHAT IS IT THIS TIME!?!?";
boolean expResult3 = false;
boolean result3 = LivreValide.isLongueurTitreValid(titre3);
assertEquals(expResult3, result3);
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. * Test of isTitreValid method, of class LivreValide.
* @author Steve * @author Steve
@@ -190,6 +156,7 @@ public class LivreValideTest {
public void testIsContenuTitreValide() { public void testIsContenuTitreValide() {
System.out.println("isTitreValid"); System.out.println("isTitreValid");
String titre = ""; String titre = "";
System.out.println();
assertFalse("Le titre ne doit pas être vide !", LivreValide.isContenuTitreValide(titre)); assertFalse("Le titre ne doit pas être vide !", LivreValide.isContenuTitreValide(titre));
titre = null; titre = null;
assertFalse("Le titre ne peut pas être nul !", LivreValide.isContenuTitreValide(titre)); assertFalse("Le titre ne peut pas être nul !", LivreValide.isContenuTitreValide(titre));
@@ -206,30 +173,4 @@ public class LivreValideTest {
titre = "Ti!"; titre = "Ti!";
assertTrue("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre)); 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(" ");
}
} }

View File

@@ -6,7 +6,6 @@ package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Metier.Utilisateur; import com.mycompany.bibliotheque.Metier.Utilisateur;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Metier.Livre;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -53,29 +52,19 @@ public class UtilisateurTest {
fail("The test case is a prototype."); fail("The test case is a prototype.");
} }
/** /**
* Test of emprunterLivre method, of class Utilisateur. * Test of emprunterLivre method, of class Utilisateur.
* @author Madhi
*/ */
@Test @Test
public void testEmprunterLivre() { public void testEmprunterLivre() {
System.out.println("emprunterLivre"); System.out.println("emprunterLivre");
Livre livre = null;
Livre a = new Livre("1984", "George Orwell", "1234567890123", false); Utilisateur instance = null;
Livre b = new Livre("1984", "Test2", "1232667890123", false); boolean expResult = false;
Livre c = new Livre ("1888","Test3","1232667890123",false); boolean result = instance.emprunterLivre(livre);
Livre d = new Livre ("1263","Test4","1236267890123",false); assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
ArrayList<Livre> mesLivres = new ArrayList<>(); fail("The test case is a prototype.");
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);
} }
} }