2 Commits

Author SHA1 Message Date
d8ec5254df Initialisation branche steve 2025-09-26 11:58:52 +02:00
bc740d970e initialisation branche steve 2025-09-26 10:23:41 +02:00
13 changed files with 120 additions and 248 deletions

4
.gitignore vendored
View File

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

20
pom.xml
View File

@@ -30,7 +30,25 @@
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<version>3.1.2</version> <version>3.1.2</version>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project> </project>

View File

@@ -1,100 +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.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
* @author dthev
*/
public class LivreValide {
// 1. ISBN : exactement 13 chiffres
public static boolean isValidIsbn(String isbn) {
// TODO Emile: implémenter la validation
boolean valide = true;
if(isbn.length() == 13){
int i = 0;
while (i < 13 && valide) {
if(!Character.isDigit(isbn.charAt(i))){
valide = false;
}else{
i++;
}
}
}else{
valide = false;
}
return valide;
}
// 2. Titre : pas de balises HTML/JS (<script>, <img>, etc.)
public static boolean isValidTitre(String Titre) {
// TODO Salomon: implémenter la validation
boolean test = true;
int i = 0;
while (i < Titre.length() && test) {
if(Titre.charAt(i) == '<' || Titre.charAt(i) == '>'){
test = false;
}else{
i++;
}
}
return test;
}
// 3. Auteur : non vide et pas de chiffres ou caractères spéciaux
public static boolean isValidAuteur(String auteur) {
//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) {
// TODO Morgann: implémenter la validation
boolean valide = false;
if(titre.length()<=200 && titre != "" && titre != null){
valide = true;
}
return valide;
}
// 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) {
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);
user.getEmprunts().remove(leLivre);
return leLivre.isEmprunte();
}
}

View File

@@ -0,0 +1,47 @@
/*
* 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;
/**
* 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
return false;
}
// 2. Titre : pas de balises HTML/JS (<script>, <img>, etc.)
public static boolean isValidTitre(String Titre) {
// TODO: implémenter la validation
return false;
}
// 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;
}
// 4. Titre : longueur maximale 200 caractères
public static boolean isLongueurTitreValid(String titre) {
// TODO Morgann: implémenter la validation
return false;
}
// 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) {
return false;
}
boolean contenuValide = titre.matches(".*[a-zA-Z].*[a-zA-Z].*");
return contenuValide;
}
}

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 {
@@ -24,7 +24,7 @@ public class GestionBibliotheque {
Livre l1 = new Livre("Le secret des secrets","Dan Brown","9782709668385",true); Livre l1 = new Livre("Le secret des secrets","Dan Brown","9782709668385",true);
Utilisateur u1 = new Utilisateur("Alice"); Utilisateur u1 = new Utilisateur("Alice");
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");

View File

@@ -2,21 +2,21 @@
* 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;
/** /**
* Classe métier * Classe métier
* @author dthev * @author dthev
*/ */
public class Bibliotheque { public class Bibliotheque {
private List<Livre> lesLivres = new ArrayList<>(); private List<Livre> lesLivres = new ArrayList<>();
// 5. ISBN doit être unique // 5. ISBN doit être unique
public boolean addLivre(Livre b) { public boolean addLivre(Livre b) {
//ajoute b si valide et si n'existe pas - à écrire //ajoute b si valide et si n'existe pas - à écrire
lesLivres.add(b); lesLivres.add(b);
return false; return false;
} }

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;
/** /**
* *
@@ -12,7 +12,7 @@ package com.mycompany.bibliotheque.Metier;
public class Livre { public class Livre {
private String titre; private String titre;
private String auteur; private String auteur;
private String isbn; // ISBN sous forme de chaîne private String isbn; // ISBN sous forme de chaîne
private Boolean emprunte; private Boolean emprunte;
public Livre(String titre, String auteur, String isbn, Boolean emprunte) { public Livre(String titre, String auteur, String isbn, Boolean emprunte) {

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.*;
@@ -14,10 +14,10 @@ public class LivreTest {
public void testCreationLivre() { public void testCreationLivre() {
Livre b = new Livre("1984", "George Orwell", "1234567890123", false); Livre b = new Livre("1984", "George Orwell", "1234567890123", false);
assertNotNull(b); assertNotNull("L'objet Livre ne peut pas être nulle !", b);
assertEquals("1984", b.getTitre()); assertEquals("Titre du Livre incorrect", "1984", b.getTitre());
assertEquals("George Orwell", b.getAuteur()); // corrigé assertEquals("Auteur du Livre incorrect", "George Orwel", b.getAuteur()); // corrigé
assertEquals("1234567890123", b.getIsbn()); assertEquals("ISBN du Livre incorrect", "1234567890123", b.getIsbn());
assertFalse(b.isEmprunte()); // si la méthode existe assertFalse("Le livre n'est pas censé être emprunté", b.isEmprunte()); // si la méthode existe
} }
} }

View File

@@ -4,7 +4,7 @@
*/ */
package com.mycompany.bibliotheque; package com.mycompany.bibliotheque;
import com.mycompany.bibliotheque.Controle.LivreValide; import com.mycompany.bibliotheque.Contrôle.LivreValide;
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.*;
@@ -29,86 +29,27 @@ public class LivreValideTest {
@Test @Test
public void testIsValidIsbn() { public void testIsValidIsbn() {
System.out.println("isValidIsbn"); System.out.println("isValidIsbn");
String isbn = "";
boolean expResult = false;
//Test 1 : un isbn avec moins de 13 carractères boolean result = LivreValide.isValidIsbn(isbn);
System.out.println("Test1 : un isbn avec moins de 13 carractères"); assertEquals(expResult, result);
String isbn1 = "1234568912"; // TODO review the generated test code and remove the default call to fail.
boolean expResult1 = false; fail("The test case is a prototype.");
boolean result1 = LivreValide.isValidIsbn(isbn1);
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("--------------------------------------------------");
System.out.println(" ");
//Test2 : lettre dans l'isbn
System.out.println("Test2 : lettre dans l'isbn");
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é");
System.out.println("--------------------------------------------------");
System.out.println(" ");
//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é");
System.out.println("--------------------------------------------------");
System.out.println(" ");
//Test4 : Un isbn valide
System.out.println("Test4: Un isbn valide");
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é");
System.out.println("--------------------------------------------------");
System.out.println(" ");
} }
/** /**
* 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");
String Titre = "";
System.out.println("Test1 : un titre comportant un '<'"); boolean expResult = false;
String Titre1 = "La chat<perché"; boolean result = LivreValide.isValidTitre(Titre);
boolean expResult1 = false; assertEquals(expResult, result);
boolean result1 = LivreValide.isValidTitre(Titre1); // TODO review the generated test code and remove the default call to fail.
assertEquals("Le chevron < n'est pas censé etre accepté",expResult1, result1); fail("The test case is a prototype.");
System.out.println("Le test1 est validé");
System.out.println("--------------------------------------------------");
System.out.println(" ");
System.out.println("Test2 : un titre comportant un '>'");
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é");
System.out.println("--------------------------------------------------");
System.out.println(" ");
System.out.println("Test3 : un titre valide");
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é");
System.out.println("--------------------------------------------------");
System.out.println(" ");
} }
/** /**
@@ -118,24 +59,12 @@ public class LivreValideTest {
@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);
} }
/** /**
@@ -145,33 +74,14 @@ 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 of isTitreValid method, of class LivreValide. * Test of isTitreValid method, of class LivreValide.
* @author Steve * @author Steve
@@ -196,4 +106,5 @@ 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));
} }
} }

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;