3 Commits

Author SHA1 Message Date
emile.malcuit
c742e0cb46 Emprunté ou non 2025-10-03 09:14:08 +02:00
emile.malcuit
0a660cecf2 Fin partie salomé 2025-10-03 08:22:39 +02:00
emile.malcuit
f90dc16401 test de validité du titre
pas de chevrons accepté
2025-09-26 11:51:51 +02:00
11 changed files with 81 additions and 139 deletions

4
.gitignore vendored
View File

@@ -1,5 +1 @@
/target/ /target/
<<<<<<< HEAD
=======
*.xml
>>>>>>> 6e8f63e2c0b4f89a6f46070511e8ce4223af4bb7

View File

@@ -2,11 +2,9 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * 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 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.mycompany.bibliotheque.Controle; package com.mycompany.bibliotheque.Contrôle;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.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
@@ -16,7 +14,6 @@ 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){
int i = 0; int i = 0;
@@ -31,7 +28,6 @@ public class LivreValide {
valide = false; valide = false;
} }
return valide; return valide;
} }
// 2. Titre : pas de balises HTML/JS (<script>, <img>, etc.) // 2. Titre : pas de balises HTML/JS (<script>, <img>, etc.)
@@ -51,50 +47,37 @@ public class LivreValide {
// 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 // TODO: implémenter la validation
if (auteur == null || auteur.isBlank()) {
return false; 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) { public static boolean isLongueurTitreValid(String titre) {
// TODO Morgann: implémenter la validation // TODO: implémenter la validation
boolean valide = false; return 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) { public static boolean isContenuTitreValide(String titre) {
// TODO Steve: implémenter la validation // TODO: implémenter la validation
if (titre == null) {
return false; return false;
}
boolean contenuValide = titre.matches(".*[a-zA-Z].*[a-zA-Z].*");
return contenuValide;
} }
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); public static boolean isDisponible (Livre leLivre){
user.getEmprunts().remove(leLivre); boolean valide = true;
return leLivre.isEmprunte(); if(leLivre.isEmprunte()){
valide = false;
} }
return valide;
};
} }

View File

@@ -10,10 +10,10 @@ package com.mycompany.bibliotheque;
*/ */
import com.mycompany.bibliotheque.Metier.Bibliotheque; import com.mycompany.bibliotheque.Métier.Bibliotheque;
import com.mycompany.bibliotheque.Metier.Emprunt; import com.mycompany.bibliotheque.Métier.Emprunt;
import com.mycompany.bibliotheque.Metier.Utilisateur; import com.mycompany.bibliotheque.Métier.Utilisateur;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.Livre;
import java.util.Scanner; import java.util.Scanner;
public class GestionBibliotheque { public class GestionBibliotheque {
@@ -30,7 +30,7 @@ public class GestionBibliotheque {
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. Quitter"); System.out.println("4. Quitter");
System.out.print("Merci de faire votre choix : "); System.out.println("Votre choix : ");
choix = sc.nextInt(); choix = sc.nextInt();
switch (choix) { switch (choix) {
case 1 : case 1 :

View File

@@ -2,7 +2,7 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * 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 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.mycompany.bibliotheque.Metier; package com.mycompany.bibliotheque.Métier;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -2,10 +2,10 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * 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 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.mycompany.bibliotheque.Metier; package com.mycompany.bibliotheque.Métier;
import com.mycompany.bibliotheque.Metier.Utilisateur; import com.mycompany.bibliotheque.Métier.Utilisateur;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.Livre;
/** /**
* *

View File

@@ -2,7 +2,7 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * 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 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.mycompany.bibliotheque.Metier; package com.mycompany.bibliotheque.Métier;
/** /**
* *

View File

@@ -2,14 +2,14 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * 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 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/ */
package com.mycompany.bibliotheque.Metier; package com.mycompany.bibliotheque.Métier;
/** /**
* *
* @author dthev * @author dthev
*/ */
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.Livre;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -4,8 +4,8 @@
*/ */
package com.mycompany.bibliotheque; package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Metier.Bibliotheque; import com.mycompany.bibliotheque.Métier.Bibliotheque;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.Livre;
import java.util.List; import java.util.List;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;

View File

@@ -4,7 +4,7 @@
*/ */
package com.mycompany.bibliotheque; package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.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.*;
@@ -16,7 +16,7 @@ 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

@@ -4,7 +4,8 @@
*/ */
package com.mycompany.bibliotheque; package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Controle.LivreValide; import com.mycompany.bibliotheque.Contrôle.LivreValide;
import com.mycompany.bibliotheque.Métier.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.*;
@@ -24,12 +25,10 @@ public class LivreValideTest {
/** /**
* Test of isValidIsbn method, of class LivreValide. * Test of isValidIsbn method, of class LivreValide.
* @author Emile
*/ */
@Test @Test
public void testIsValidIsbn() { public void testIsValidIsbn() {
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");
@@ -37,7 +36,6 @@ public class LivreValideTest {
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));
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(" ");
@@ -76,7 +74,6 @@ public class LivreValideTest {
/** /**
* Test of isValidTitre method, of class LivreValide. * Test of isValidTitre method, of class LivreValide.
* @author Salomé/Emile
*/ */
@Test @Test
public void testIsValidTitre() { public void testIsValidTitre() {
@@ -109,91 +106,57 @@ public class LivreValideTest {
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/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);
} }
/** /**
* Test of isLongueurTitreValid method, of class LivreValide. * Test of isLongueurTitreValid method, of class LivreValide.
* @author Morgann
*/ */
@Test @Test
public void testIsLongueurTitreValid() { public void testIsLongueurTitreValid() {
System.out.println("isLongueurTitreValid"); System.out.println("isLongueurTitreValid");
//test 1 : aucune valeur saisie
System.out.println("Test avec aucune valeur saisie");
String titre1 = "";
boolean expResult1 = false;
boolean result1 = LivreValide.isLongueurTitreValid(titre1);
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 of isTitreValid method, of class LivreValide.
* @author Steve
*/
@Test
public void testIsContenuTitreValide() {
System.out.println("isTitreValid");
String titre = ""; String titre = "";
assertFalse("Le titre ne doit pas être vide !", LivreValide.isContenuTitreValide(titre)); boolean expResult = false;
titre = null; boolean result = LivreValide.isLongueurTitreValid(titre);
assertFalse("Le titre ne peut pas être nul !", LivreValide.isContenuTitreValide(titre)); assertEquals(expResult, result);
titre = "Ti"; // TODO review the generated test code and remove the default call to fail.
assertTrue("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre)); fail("The test case is a prototype.");
titre = "T";
assertFalse("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre));
titre = "1234";
assertFalse("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre));
titre = "Ti2";
assertTrue("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre));
titre = "*$!";
assertFalse("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre));
titre = "Ti!";
assertTrue("Le titre fait au moins 2 caractères alphabétiques !", LivreValide.isContenuTitreValide(titre));
} }
@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

@@ -4,8 +4,8 @@
*/ */
package com.mycompany.bibliotheque; package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Metier.Utilisateur; import com.mycompany.bibliotheque.Métier.Utilisateur;
import com.mycompany.bibliotheque.Metier.Livre; import com.mycompany.bibliotheque.Métier.Livre;
import java.util.List; import java.util.List;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;