From 31b5eca6c3c17bbd142266a13d78b52037d6953d Mon Sep 17 00:00:00 2001 From: "steve.maingana" Date: Fri, 3 Oct 2025 11:56:08 +0200 Subject: [PATCH 1/2] test Bibliotheque addLivre --- .../{Contrôle => Controle}/LivreValide.java | 30 +++++++---- .../bibliotheque/GestionBibliotheque.java | 9 ++-- .../bibliotheque/Metier/Bibliotheque.java | 51 ++++++++++++++++++ .../{Métier => Metier}/Emprunt.java | 6 +-- .../{Métier => Metier}/Livre.java | 2 +- .../{Métier => Metier}/Utilisateur.java | 6 +-- .../bibliotheque/Métier/Bibliotheque.java | 33 ------------ .../bibliotheque/BibliothequeTest.java | 53 +++++++++++++++---- .../com/mycompany/bibliotheque/LivreTest.java | 6 +-- .../bibliotheque/LivreValideTest.java | 45 ++++++++-------- .../bibliotheque/UtilisateurTest.java | 4 +- 11 files changed, 155 insertions(+), 90 deletions(-) rename src/main/java/com/mycompany/bibliotheque/{Contrôle => Controle}/LivreValide.java (64%) create mode 100644 src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java rename src/main/java/com/mycompany/bibliotheque/{Métier => Metier}/Emprunt.java (80%) rename src/main/java/com/mycompany/bibliotheque/{Métier => Metier}/Livre.java (96%) rename src/main/java/com/mycompany/bibliotheque/{Métier => Metier}/Utilisateur.java (84%) delete mode 100644 src/main/java/com/mycompany/bibliotheque/Métier/Bibliotheque.java diff --git a/src/main/java/com/mycompany/bibliotheque/Contrôle/LivreValide.java b/src/main/java/com/mycompany/bibliotheque/Controle/LivreValide.java similarity index 64% rename from src/main/java/com/mycompany/bibliotheque/Contrôle/LivreValide.java rename to src/main/java/com/mycompany/bibliotheque/Controle/LivreValide.java index 4d6752e..cd9b844 100644 --- a/src/main/java/com/mycompany/bibliotheque/Contrôle/LivreValide.java +++ b/src/main/java/com/mycompany/bibliotheque/Controle/LivreValide.java @@ -2,16 +2,16 @@ * 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; /** - * Classe de contrôle de la classe Livre + * Classe de contrôle de la classe Livre * @author dthev */ public class LivreValide { // 1. ISBN : exactement 13 chiffres public static boolean isValidIsbn(String isbn) { - // TODO Emile: implémenter la validation + // TODO Emile: implémenter la validation boolean valide = true; if(isbn.length() == 13){ @@ -45,21 +45,31 @@ public class LivreValide { 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) { - // TODO: implémenter la validation - return false; + //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 + // 4. Titre : longueur maximale 200 caractères public static boolean isLongueurTitreValid(String titre) { // TODO Morgann: implémenter la validation - return false; + boolean valide = false; + if(titre.length()<=200 && titre != "" && titre != null){ + valide = true; + } + 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) { - // TODO Steve: implémenter la validation + // TODO Steve: implémenter la validation if (titre == null) { return false; } diff --git a/src/main/java/com/mycompany/bibliotheque/GestionBibliotheque.java b/src/main/java/com/mycompany/bibliotheque/GestionBibliotheque.java index 9b145a5..dbe4a57 100644 --- a/src/main/java/com/mycompany/bibliotheque/GestionBibliotheque.java +++ b/src/main/java/com/mycompany/bibliotheque/GestionBibliotheque.java @@ -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.Utilisateur; +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.Scanner; public class GestionBibliotheque { diff --git a/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java b/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java new file mode 100644 index 0000000..c630112 --- /dev/null +++ b/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java @@ -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 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.toString().equals(b.toString())) return false; + } + + lesLivres.add(b); + + return true; + } else return false; + } + + public List getLesLivres() { + return lesLivres; + } + + public void setLesLivres(List lesLivres) { + this.lesLivres = lesLivres; + } + + +} diff --git a/src/main/java/com/mycompany/bibliotheque/Métier/Emprunt.java b/src/main/java/com/mycompany/bibliotheque/Metier/Emprunt.java similarity index 80% rename from src/main/java/com/mycompany/bibliotheque/Métier/Emprunt.java rename to src/main/java/com/mycompany/bibliotheque/Metier/Emprunt.java index 809276f..57377fa 100644 --- a/src/main/java/com/mycompany/bibliotheque/Métier/Emprunt.java +++ b/src/main/java/com/mycompany/bibliotheque/Metier/Emprunt.java @@ -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; /** * diff --git a/src/main/java/com/mycompany/bibliotheque/Métier/Livre.java b/src/main/java/com/mycompany/bibliotheque/Metier/Livre.java similarity index 96% rename from src/main/java/com/mycompany/bibliotheque/Métier/Livre.java rename to src/main/java/com/mycompany/bibliotheque/Metier/Livre.java index c16ddc1..af30a38 100644 --- a/src/main/java/com/mycompany/bibliotheque/Métier/Livre.java +++ b/src/main/java/com/mycompany/bibliotheque/Metier/Livre.java @@ -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; /** * diff --git a/src/main/java/com/mycompany/bibliotheque/Métier/Utilisateur.java b/src/main/java/com/mycompany/bibliotheque/Metier/Utilisateur.java similarity index 84% rename from src/main/java/com/mycompany/bibliotheque/Métier/Utilisateur.java rename to src/main/java/com/mycompany/bibliotheque/Metier/Utilisateur.java index 80cc631..56190b7 100644 --- a/src/main/java/com/mycompany/bibliotheque/Métier/Utilisateur.java +++ b/src/main/java/com/mycompany/bibliotheque/Metier/Utilisateur.java @@ -2,14 +2,14 @@ * 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 com.mycompany.bibliotheque.Metier.Livre; import java.util.ArrayList; import java.util.List; @@ -32,6 +32,6 @@ public class Utilisateur { // TODO: ajouter un emprunt si l'utilisateur a moins de 3 livres public boolean emprunterLivre(Livre livre) { - return false; // à compléter + return false; // à compléter } } diff --git a/src/main/java/com/mycompany/bibliotheque/Métier/Bibliotheque.java b/src/main/java/com/mycompany/bibliotheque/Métier/Bibliotheque.java deleted file mode 100644 index 176cb3e..0000000 --- a/src/main/java/com/mycompany/bibliotheque/Métier/Bibliotheque.java +++ /dev/null @@ -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 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 getLesLivres() { - return lesLivres; - } - - public void setLesLivres(List lesLivres) { - this.lesLivres = lesLivres; - } - - -} diff --git a/src/test/java/com/mycompany/bibliotheque/BibliothequeTest.java b/src/test/java/com/mycompany/bibliotheque/BibliothequeTest.java index 25597cd..e74f6bf 100644 --- a/src/test/java/com/mycompany/bibliotheque/BibliothequeTest.java +++ b/src/test/java/com/mycompany/bibliotheque/BibliothequeTest.java @@ -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; @@ -30,13 +30,49 @@ public class BibliothequeTest { @Test public void testAddLivre() { System.out.println("addLivre"); - Livre b = null; 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("", "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); } /** @@ -65,5 +101,4 @@ public class BibliothequeTest { // TODO review the generated test code and remove the default call to fail. fail("The test case is a prototype."); } - } diff --git a/src/test/java/com/mycompany/bibliotheque/LivreTest.java b/src/test/java/com/mycompany/bibliotheque/LivreTest.java index 45d22d3..01cc4cc 100644 --- a/src/test/java/com/mycompany/bibliotheque/LivreTest.java +++ b/src/test/java/com/mycompany/bibliotheque/LivreTest.java @@ -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.*; @@ -16,8 +16,8 @@ public void testCreationLivre() { assertNotNull(b); assertEquals("1984", b.getTitre()); - assertEquals("George Orwel", b.getAuteur()); // corrigé + assertEquals("George Orwel", b.getAuteur()); // corrigé assertEquals("1234567890123", b.getIsbn()); - assertFalse(b.isEmprunte()); // si la méthode existe + assertFalse(b.isEmprunte()); // si la méthode existe } } \ No newline at end of file diff --git a/src/test/java/com/mycompany/bibliotheque/LivreValideTest.java b/src/test/java/com/mycompany/bibliotheque/LivreValideTest.java index 7884fe5..ce42af0 100644 --- a/src/test/java/com/mycompany/bibliotheque/LivreValideTest.java +++ b/src/test/java/com/mycompany/bibliotheque/LivreValideTest.java @@ -4,7 +4,7 @@ */ package com.mycompany.bibliotheque; -import com.mycompany.bibliotheque.Contrôle.LivreValide; +import com.mycompany.bibliotheque.Controle.LivreValide; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; @@ -31,14 +31,14 @@ public class LivreValideTest { System.out.println("isValidIsbn"); - //Test 1 : un isbn avec moins de 13 carractères - System.out.println("Test1 : 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"); String isbn1 = "1234568912"; boolean expResult1 = false; 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)); - System.out.println("Le test1 est validé"); + System.out.println("Le test1 est validé"); System.out.println("--------------------------------------------------"); System.out.println(" "); @@ -47,18 +47,18 @@ public class LivreValideTest { String isbn2 = "123456789ABC2"; boolean expResult2 = false; boolean result2 = LivreValide.isValidIsbn(isbn2); - assertEquals("Les alphas ne sont pas autorisés", expResult2, result2); - System.out.println("Le test2 est validé"); + assertEquals("Les alphas ne sont pas autorisés", expResult2, result2); + System.out.println("Le test2 est validé"); 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"); String isbn3 = "1234568912123568"; boolean expResult3 = false; boolean result3 = LivreValide.isValidIsbn(isbn3); - assertEquals("Le nombre de carractère est censé est trop grand",expResult3, result3); - System.out.println("Le test3 est validé"); + assertEquals("Le nombre de carractère est censé est trop grand",expResult3, result3); + System.out.println("Le test3 est validé"); System.out.println("--------------------------------------------------"); System.out.println(" "); @@ -67,8 +67,8 @@ public class LivreValideTest { String isbn4 = "1234568912126"; boolean expResult4 = true; boolean result4 = LivreValide.isValidIsbn(isbn4); - assertEquals("L'isbn est censé être valide",expResult4, result4); - System.out.println("Le test4 est validé"); + assertEquals("L'isbn est censé être valide",expResult4, result4); + System.out.println("Le test4 est validé"); System.out.println("--------------------------------------------------"); System.out.println(" "); @@ -76,37 +76,37 @@ public class LivreValideTest { /** * Test of isValidTitre method, of class LivreValide. - * @author Salomé/Emile + * @author Salomé/Emile */ @Test public void testIsValidTitre() { System.out.println("isValidTitre"); System.out.println("Test1 : un titre comportant un '<'"); - String Titre1 = "La chat'"); - String Titre2 = "La chat >perché"; + String Titre2 = "La chat >perché"; boolean expResult2 = false; boolean result2 = LivreValide.isValidTitre(Titre2); - assertEquals("Le chevron > n'est pas censé etre accepté",expResult2, result2); - System.out.println("Le test2 est validé"); + assertEquals("Le chevron > n'est pas censé etre accepté",expResult2, result2); + System.out.println("Le test2 est validé"); System.out.println("--------------------------------------------------"); System.out.println(" "); System.out.println("Test3 : un titre valide"); - String Titre3 = "La chat perché"; + String Titre3 = "La chat perché"; boolean expResult3 = true; boolean result3 = LivreValide.isValidTitre(Titre3); - assertEquals("Ce titre est cencé être valide",expResult3, result3); - System.out.println("Le test3 est validé"); + assertEquals("Ce titre est cencé être valide",expResult3, result3); + System.out.println("Le test3 est validé"); System.out.println("--------------------------------------------------"); System.out.println(" "); } @@ -156,6 +156,7 @@ public class LivreValideTest { public void testIsContenuTitreValide() { System.out.println("isTitreValid"); String titre = ""; + System.out.println(); assertFalse("Le titre ne doit pas être vide !", LivreValide.isContenuTitreValide(titre)); titre = null; assertFalse("Le titre ne peut pas être nul !", LivreValide.isContenuTitreValide(titre)); diff --git a/src/test/java/com/mycompany/bibliotheque/UtilisateurTest.java b/src/test/java/com/mycompany/bibliotheque/UtilisateurTest.java index d11134f..353053a 100644 --- a/src/test/java/com/mycompany/bibliotheque/UtilisateurTest.java +++ b/src/test/java/com/mycompany/bibliotheque/UtilisateurTest.java @@ -4,8 +4,8 @@ */ 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.List; import org.junit.Before; import org.junit.Test; -- 2.49.1 From 987db5ce7c40a337dcac6e6c734d4013459e040a Mon Sep 17 00:00:00 2001 From: "steve.maingana" Date: Fri, 3 Oct 2025 13:10:13 +0200 Subject: [PATCH 2/2] test Bibliotheque addLivre --- .../java/com/mycompany/bibliotheque/Metier/Bibliotheque.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java b/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java index c630112..d322e4f 100644 --- a/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java +++ b/src/main/java/com/mycompany/bibliotheque/Metier/Bibliotheque.java @@ -30,7 +30,7 @@ public class Bibliotheque { if (issues.length() < 1) { System.out.println("valide"); for (Livre livre : this.getLesLivres()) { - if (livre.toString().equals(b.toString())) return false; + if (livre.getIsbn().equals(b.getIsbn())) return false; } lesLivres.add(b); -- 2.49.1