From b4cb015e8e1b784f001665f2b429041babce0c0d Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Fri, 12 Feb 2021 18:56:50 +0100
Subject: [PATCH 01/11] =?UTF-8?q?=F0=9F=94=A7=20Ajout=20plugin=20PiTest?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/pom.xml b/pom.xml
index a5899e2..2e21ff0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -235,6 +235,29 @@
+
+ org.pitest
+ pitest-maven
+ 1.6.2
+
+
+ org.pitest
+ pitest-junit5-plugin
+ 0.12
+
+
+ io.github.wmaarts
+ pitest-mutation-testing-elements-plugin
+ 0.3.1
+
+
+
+
+ HTML2
+
+
+
+
From a0711f691d62e81ba5b5c3df2ea5acc8fd3773c0 Mon Sep 17 00:00:00 2001
From: Mathieu Soysal <43273304+MathieuSoysal@users.noreply.github.com>
Date: Tue, 16 Feb 2021 11:39:09 +0100
Subject: [PATCH 02/11] =?UTF-8?q?=F0=9F=9B=91=20Ajout=20test=20non-valid?=
=?UTF-8?q?=C3=A9=20Professeur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/test/java/fr/umontp/edt/ProfesseurTest.java | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/test/java/fr/umontp/edt/ProfesseurTest.java b/src/test/java/fr/umontp/edt/ProfesseurTest.java
index dfb4aed..def09c2 100644
--- a/src/test/java/fr/umontp/edt/ProfesseurTest.java
+++ b/src/test/java/fr/umontp/edt/ProfesseurTest.java
@@ -20,4 +20,11 @@ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifference
assertEquals(professeur1, professeur2);
}
+ @Test
+ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifferenceCaractereSpeciaux() {
+ Professeur professeur1 = new Professeur("prés-dupuis Jean");
+ Professeur professeur2 = new Professeur("pres-dupuis Jean");
+ assertEquals(professeur1, professeur2);
+ }
+
}
From 050fc083b7ee26d84f59d85def7d228c1234696b Mon Sep 17 00:00:00 2001
From: Mathieu Soysal <43273304+MathieuSoysal@users.noreply.github.com>
Date: Tue, 16 Feb 2021 12:15:02 +0100
Subject: [PATCH 03/11] =?UTF-8?q?=F0=9F=94=A8=20Validation=20test=20Profes?=
=?UTF-8?q?seur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fr/umontp/edt/Professeur.java | 25 ++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/main/java/fr/umontp/edt/Professeur.java b/src/main/java/fr/umontp/edt/Professeur.java
index 0861166..51751c4 100644
--- a/src/main/java/fr/umontp/edt/Professeur.java
+++ b/src/main/java/fr/umontp/edt/Professeur.java
@@ -1,6 +1,8 @@
package fr.umontp.edt;
+import java.text.Normalizer;
import java.util.Locale;
+import java.util.regex.Pattern;
/**
* Professeur est la classe représentant un professeur au sein de l'emploi du
@@ -19,7 +21,7 @@
* @see RepertoireProfesseur
*
* @author MathieuSoysal
- * @version 1.0.0
+ * @version 1.0.1
*/
public class Professeur {
private String denomination;
@@ -39,12 +41,29 @@ public class Professeur {
denomination = formater(nom, prenom);
}
+ /**
+ * @param nomPrenom
+ *
+ * @return la variable {@code nomPrenom} formaté.
+ *
+ * @see String#toUpperCase(Locale)
+ * @see Professeur#supprimerAccent(String)
+ *
+ * @since 1.0.1
+ */
+ static String formater(String nomPrenom) {
+ nomPrenom = supprimerAccent(nomPrenom);
+ return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", " ");
+ }
+
static String formater(String nom, String prenom) {
return formater(nom + " " + prenom);
}
- static String formater(String nomPrenom) {
- return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", " ");
+ private static String supprimerAccent(String str) {
+ String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
+ Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
+ return pattern.matcher(nfdNormalizedString).replaceAll("");
}
/**
From f61b1df2dec8c95d8a8d9cb31dbe4c4bf7e8f4ea Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Tue, 16 Feb 2021 19:33:03 +0100
Subject: [PATCH 04/11] =?UTF-8?q?=E2=99=BB=20Refactorisation=20Professeur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fr/umontp/edt/Professeur.java | 32 +--------
.../fr/umontp/edt/RepertoireProfesseur.java | 6 +-
.../umontp/edt/outils/OutilsProfesseur.java | 72 +++++++++++++++++++
.../edt/outils/OutilsProfesseurTest.java | 64 +++++++++++++++++
4 files changed, 143 insertions(+), 31 deletions(-)
create mode 100644 src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
create mode 100644 src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
diff --git a/src/main/java/fr/umontp/edt/Professeur.java b/src/main/java/fr/umontp/edt/Professeur.java
index 51751c4..26abd35 100644
--- a/src/main/java/fr/umontp/edt/Professeur.java
+++ b/src/main/java/fr/umontp/edt/Professeur.java
@@ -1,8 +1,6 @@
package fr.umontp.edt;
-import java.text.Normalizer;
-import java.util.Locale;
-import java.util.regex.Pattern;
+import fr.umontp.edt.outils.OutilsProfesseur;
/**
* Professeur est la classe représentant un professeur au sein de l'emploi du
@@ -19,6 +17,7 @@
*
*
* @see RepertoireProfesseur
+ * @see OutilsProfesseur
*
* @author MathieuSoysal
* @version 1.0.1
@@ -38,32 +37,7 @@ public class Professeur {
String[] infosProf = nomPrenom.split(" ");
nom = infosProf[0];
prenom = infosProf[1];
- denomination = formater(nom, prenom);
- }
-
- /**
- * @param nomPrenom
- *
- * @return la variable {@code nomPrenom} formaté.
- *
- * @see String#toUpperCase(Locale)
- * @see Professeur#supprimerAccent(String)
- *
- * @since 1.0.1
- */
- static String formater(String nomPrenom) {
- nomPrenom = supprimerAccent(nomPrenom);
- return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", " ");
- }
-
- static String formater(String nom, String prenom) {
- return formater(nom + " " + prenom);
- }
-
- private static String supprimerAccent(String str) {
- String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
- Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
- return pattern.matcher(nfdNormalizedString).replaceAll("");
+ denomination = OutilsProfesseur.formater(nom, prenom);
}
/**
diff --git a/src/main/java/fr/umontp/edt/RepertoireProfesseur.java b/src/main/java/fr/umontp/edt/RepertoireProfesseur.java
index c8f9116..93fe3e6 100644
--- a/src/main/java/fr/umontp/edt/RepertoireProfesseur.java
+++ b/src/main/java/fr/umontp/edt/RepertoireProfesseur.java
@@ -6,6 +6,8 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import fr.umontp.edt.outils.OutilsProfesseur;
+
/**
* RepertoireProfesseur est la classe qui repertorie tous les professeurs de
* l'emploi du temps.
@@ -43,7 +45,7 @@ static Professeur[] getProfesseurDepuisDescriptionEtAjouterSiNonPresent(String d
Matcher m = Pattern.compile(regex).matcher(description);
final List matches = new ArrayList<>();
while (m.find()) {
- String nomPrenomProf = Professeur.formater(m.group(0));
+ String nomPrenomProf = OutilsProfesseur.formater(m.group(0));
matches.add(repertoire.computeIfAbsent(nomPrenomProf, k -> new Professeur(nomPrenomProf)));
}
return matches.toArray(new Professeur[matches.size()]);
@@ -61,7 +63,7 @@ static Professeur[] getProfesseurDepuisDescriptionEtAjouterSiNonPresent(String d
* @see java.util.HashMap#get(java.lang.Object)
*/
public static Professeur get(String nom, String prenom) {
- return repertoire.get(Professeur.formater(nom, prenom));
+ return repertoire.get(OutilsProfesseur.formater(nom, prenom));
}
}
diff --git a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
new file mode 100644
index 0000000..29378f3
--- /dev/null
+++ b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
@@ -0,0 +1,72 @@
+package fr.umontp.edt.outils;
+
+import java.text.Normalizer;
+import java.util.Locale;
+import java.util.regex.Pattern;
+
+import fr.umontp.edt.Professeur;
+
+/**
+ * ProfesseurOutils est la classe utilitaire pour le fonctionnement interne
+ * de la class {@link Professeur}.
+ *
+ * @see Professeur
+ *
+ * @author MathieuSoysal
+ * @version 1.0.0
+ */
+public class OutilsProfesseur {
+ private OutilsProfesseur() {
+ throw new IllegalStateException("Class utilitaire");
+ }
+
+ /**
+ * @param str {@code String} auquel l'on doit enlever l'accentuation
+ *
+ * @return {@code String} sans accentuation.
+ *
+ * @see Normalizer
+ *
+ * @since 1.0.0
+ */
+ public static String supprimerAccentuation(String str) {
+ String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD);
+ Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
+ return pattern.matcher(nfdNormalizedString).replaceAll("");
+ }
+
+ /**
+ * Concatène les deux variables {@code nom} et {@code prenom}, et renvoie une
+ * variable formaté pour la class {@link Professeur}.
+ *
+ * @param nom
+ * @param prenom
+ *
+ * @return {@code String} formaté pour la class {@link Professeur}.
+ *
+ * @see String#toUpperCase(Locale)
+ * @see supprimerAccent
+ *
+ * @since 1.0.0
+ */
+ public static String formater(String nom, String prenom) {
+ return OutilsProfesseur.formater(nom + " " + prenom);
+ }
+
+ /**
+ * @param nomPrenom
+ *
+ * @return la variable {@code nomPrenom} formaté pour la class
+ * {@link Professeur}.
+ *
+ * @see String#toUpperCase(Locale)
+ * @see supprimerAccent
+ *
+ * @since 1.0.0
+ */
+ public static String formater(String nomPrenom) {
+ nomPrenom = supprimerAccentuation(nomPrenom);
+ return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", " ");
+ }
+
+}
diff --git a/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java b/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
new file mode 100644
index 0000000..269b900
--- /dev/null
+++ b/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
@@ -0,0 +1,64 @@
+package fr.umontp.edt.outils;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.stream.Stream;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+class OutilsProfesseurTest {
+
+ @ParameterizedTest(name = "la chaine de caractères {0} une fois son accentuation supprimé doit être égale à {1}")
+ @MethodSource("genererArgumentsPourtest_supprimerAccentuation")
+ void test_supprimerAccentuation(String input, String excepted) {
+ assertEquals(excepted, OutilsProfesseur.supprimerAccentuation(input));
+ }
+
+ private static Stream genererArgumentsPourtest_supprimerAccentuation() {
+ return Stream.of(//
+ Arguments.of("É", "E"), //
+ Arguments.of("1234567890", "1234567890"), //
+ Arguments.of("ô", "o"), //
+ Arguments.of("à", "a"), //
+ Arguments.of("è", "e"), //
+ Arguments.of("ç", "c"), //
+ Arguments.of("'", "'"), //
+ Arguments.of("-", "-"), //
+ Arguments.of(" ", " "), //
+ Arguments.of("é", "e"));
+ }
+
+ @ParameterizedTest(name = "la chaine de caractères {0} une fois formaté doit être égale à {1}")
+ @MethodSource("genererArgumentsPourtest_formater_1parametre")
+ void test_formater_1parametre(String input, String excepted) {
+ assertEquals(excepted, OutilsProfesseur.formater(input));
+ }
+
+ private static Stream genererArgumentsPourtest_formater_1parametre() {
+ return Stream.of(//
+ Arguments.of("", ""), //
+ Arguments.of("test", "TEST"), //
+ Arguments.of("TeEsT", "TEEST"), //
+ Arguments.of("Téèçà", "TEECA"), //
+ Arguments.of("ÉÈÇÀ", "EECA"), //
+ Arguments.of("test t@°0245est", "TEST T EST"));
+ }
+
+ @ParameterizedTest(name = "la chiane de caractères {0} une fois formaté doit être égale à {1}")
+ @MethodSource("genererArgumentsPourtest_formater_2parametres")
+ void test_formater_2parametres(String input1, String input2, String excepted) {
+ assertEquals(excepted, OutilsProfesseur.formater(input1, input2));
+ }
+
+ private static Stream genererArgumentsPourtest_formater_2parametres() {
+ return Stream.of(//
+ Arguments.of("", "", " "), //
+ Arguments.of("test", "TEST", "TEST TEST"), //
+ Arguments.of("TeEsT", "TeEsT", "TEEST TEEST"), //
+ Arguments.of("Téèçà", "Téèçà", "TEECA TEECA"), //
+ Arguments.of("ÉÈÇÀ", "ÉÈÇÀ", "EECA EECA"), //
+ Arguments.of("te93~('st", "t@°0245est", "TE ST T EST"));
+ }
+}
From f3ad903e4a290927fa381d5c22c064ff1c03a3a1 Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Tue, 16 Feb 2021 23:27:39 +0100
Subject: [PATCH 05/11] =?UTF-8?q?=F0=9F=9B=91=20Ajout=20test=20non-valid?=
=?UTF-8?q?=C3=A9=20Professeur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/test/java/fr/umontp/edt/ProfesseurTest.java | 7 +++++++
.../java/fr/umontp/edt/outils/OutilsProfesseurTest.java | 6 +++---
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/test/java/fr/umontp/edt/ProfesseurTest.java b/src/test/java/fr/umontp/edt/ProfesseurTest.java
index def09c2..9c6d816 100644
--- a/src/test/java/fr/umontp/edt/ProfesseurTest.java
+++ b/src/test/java/fr/umontp/edt/ProfesseurTest.java
@@ -27,4 +27,11 @@ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifference
assertEquals(professeur1, professeur2);
}
+ @Test
+ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifferenceEntreEspaceEtCaractereSpeciaux() {
+ Professeur professeur1 = new Professeur("D'Ôrge Jean");
+ Professeur professeur2 = new Professeur("DÔrge Jean");
+ assertEquals(professeur1, professeur2);
+ }
+
}
diff --git a/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java b/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
index 269b900..34ebc38 100644
--- a/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
+++ b/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
@@ -43,10 +43,10 @@ private static Stream genererArgumentsPourtest_formater_1parametre()
Arguments.of("TeEsT", "TEEST"), //
Arguments.of("Téèçà", "TEECA"), //
Arguments.of("ÉÈÇÀ", "EECA"), //
- Arguments.of("test t@°0245est", "TEST T EST"));
+ Arguments.of("test t@°0245est", "TEST TEST"));
}
- @ParameterizedTest(name = "la chiane de caractères {0} une fois formaté doit être égale à {1}")
+ @ParameterizedTest(name = "la chaine de caractères {0} une fois formaté doit être égale à {1}")
@MethodSource("genererArgumentsPourtest_formater_2parametres")
void test_formater_2parametres(String input1, String input2, String excepted) {
assertEquals(excepted, OutilsProfesseur.formater(input1, input2));
@@ -59,6 +59,6 @@ private static Stream genererArgumentsPourtest_formater_2parametres()
Arguments.of("TeEsT", "TeEsT", "TEEST TEEST"), //
Arguments.of("Téèçà", "Téèçà", "TEECA TEECA"), //
Arguments.of("ÉÈÇÀ", "ÉÈÇÀ", "EECA EECA"), //
- Arguments.of("te93~('st", "t@°0245est", "TE ST T EST"));
+ Arguments.of("te93~('st", "t@°0245est", "TEST TEST"));
}
}
From 11f0a321e5e5243f4555ccb20028c8f6bd09313f Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Tue, 16 Feb 2021 23:31:41 +0100
Subject: [PATCH 06/11] =?UTF-8?q?=F0=9F=94=A8=20Validation=20test=20Profes?=
=?UTF-8?q?seur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
index 29378f3..fb24761 100644
--- a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
+++ b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
@@ -66,7 +66,7 @@ public static String formater(String nom, String prenom) {
*/
public static String formater(String nomPrenom) {
nomPrenom = supprimerAccentuation(nomPrenom);
- return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", " ");
+ return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", "");
}
}
From 28cef3014d34eaa0f2aa443e3ba4f1a7d022df7c Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Tue, 16 Feb 2021 23:37:46 +0100
Subject: [PATCH 07/11] =?UTF-8?q?=F0=9F=9B=91Ajout=20test=20non-valid?=
=?UTF-8?q?=C3=A9=20Professeur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/test/java/fr/umontp/edt/ProfesseurTest.java | 9 ++++++++-
.../java/fr/umontp/edt/outils/OutilsProfesseurTest.java | 3 +++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/test/java/fr/umontp/edt/ProfesseurTest.java b/src/test/java/fr/umontp/edt/ProfesseurTest.java
index 9c6d816..bc3378b 100644
--- a/src/test/java/fr/umontp/edt/ProfesseurTest.java
+++ b/src/test/java/fr/umontp/edt/ProfesseurTest.java
@@ -28,10 +28,17 @@ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifference
}
@Test
- void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifferenceEntreEspaceEtCaractereSpeciaux() {
+ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecSuppressionCaractereSpeciaux() {
Professeur professeur1 = new Professeur("D'Ôrge Jean");
Professeur professeur2 = new Professeur("DÔrge Jean");
assertEquals(professeur1, professeur2);
}
+ @Test
+ void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecEgualiteEntreEspaceEtCaractereSpeciaux() {
+ Professeur professeur1 = new Professeur("D'Ôrge Jean");
+ Professeur professeur2 = new Professeur("D Ôrge Jean");
+ assertEquals(professeur1, professeur2);
+ }
+
}
diff --git a/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java b/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
index 34ebc38..09ed976 100644
--- a/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
+++ b/src/test/java/fr/umontp/edt/outils/OutilsProfesseurTest.java
@@ -40,6 +40,8 @@ private static Stream genererArgumentsPourtest_formater_1parametre()
return Stream.of(//
Arguments.of("", ""), //
Arguments.of("test", "TEST"), //
+ Arguments.of("D'Orge", "DORGE"), //
+ Arguments.of("D Orge", "DORGE"), //
Arguments.of("TeEsT", "TEEST"), //
Arguments.of("Téèçà", "TEECA"), //
Arguments.of("ÉÈÇÀ", "EECA"), //
@@ -57,6 +59,7 @@ private static Stream genererArgumentsPourtest_formater_2parametres()
Arguments.of("", "", " "), //
Arguments.of("test", "TEST", "TEST TEST"), //
Arguments.of("TeEsT", "TeEsT", "TEEST TEEST"), //
+ Arguments.of("T eEsT", "TeE sT", "TEEST TEEST"), //
Arguments.of("Téèçà", "Téèçà", "TEECA TEECA"), //
Arguments.of("ÉÈÇÀ", "ÉÈÇÀ", "EECA EECA"), //
Arguments.of("te93~('st", "t@°0245est", "TEST TEST"));
From ecffe2c6619201237d44b5635099ddfb1e83d4c4 Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Tue, 16 Feb 2021 23:49:24 +0100
Subject: [PATCH 08/11] =?UTF-8?q?=F0=9F=94=A8=20Validation=20test=20profes?=
=?UTF-8?q?seur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
index fb24761..fcd1fb0 100644
--- a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
+++ b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
@@ -66,7 +66,7 @@ public static String formater(String nom, String prenom) {
*/
public static String formater(String nomPrenom) {
nomPrenom = supprimerAccentuation(nomPrenom);
- return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]", "");
+ return nomPrenom.toUpperCase(Locale.FRANCE).replaceAll("[^A-Z ]|(?<=\\S)\\s(?=\\S)", "");
}
}
From 1041cda1e71788a33a944d5b7296d425cc278cd5 Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Fri, 26 Feb 2021 16:16:41 +0100
Subject: [PATCH 09/11] =?UTF-8?q?=E2=9A=A1=20Multi-threading=20EmploiDuTem?=
=?UTF-8?q?ps?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/main/java/fr/umontp/edt/EmploiDuTemps.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/fr/umontp/edt/EmploiDuTemps.java b/src/main/java/fr/umontp/edt/EmploiDuTemps.java
index 0efe13d..c674be9 100644
--- a/src/main/java/fr/umontp/edt/EmploiDuTemps.java
+++ b/src/main/java/fr/umontp/edt/EmploiDuTemps.java
@@ -123,7 +123,7 @@ private File getFichierIcsDepuisLienIcal() {
}
@Override
- public void actualiser() {
+ public synchronized void actualiser() {
File fichierIcs = getFichierIcsDepuisLienIcal();
Calendar calendar = convertieFichierIcsEnCalendar(fichierIcs);
ArrayList coursList = new ArrayList<>();
From dc4434ccd686e312f5268c09d434f38a22becec1 Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Fri, 26 Feb 2021 16:22:56 +0100
Subject: [PATCH 10/11] =?UTF-8?q?=F0=9F=93=9D=20Correction=20JavaDoc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/fr/umontp/edt/outils/OutilsProfesseur.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
index fcd1fb0..bf6ed3a 100644
--- a/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
+++ b/src/main/java/fr/umontp/edt/outils/OutilsProfesseur.java
@@ -39,13 +39,13 @@ public static String supprimerAccentuation(String str) {
* Concatène les deux variables {@code nom} et {@code prenom}, et renvoie une
* variable formaté pour la class {@link Professeur}.
*
- * @param nom
- * @param prenom
+ * @param nom du professeur
+ * @param prenom du professeur
*
* @return {@code String} formaté pour la class {@link Professeur}.
*
* @see String#toUpperCase(Locale)
- * @see supprimerAccent
+ * @see OutilsProfesseur#supprimerAccentuation(String)
*
* @since 1.0.0
*/
@@ -54,13 +54,13 @@ public static String formater(String nom, String prenom) {
}
/**
- * @param nomPrenom
+ * @param nomPrenom non et prénom du professeur séparé par 3 espaces.
*
* @return la variable {@code nomPrenom} formaté pour la class
* {@link Professeur}.
*
* @see String#toUpperCase(Locale)
- * @see supprimerAccent
+ * @see OutilsProfesseur#supprimerAccentuation(String)
*
* @since 1.0.0
*/
From 34b1d0dbe9120e3c35e47f30f1d7c69166ef3c73 Mon Sep 17 00:00:00 2001
From: MathieuSoysal
Date: Fri, 26 Feb 2021 16:36:47 +0100
Subject: [PATCH 11/11] =?UTF-8?q?=E2=99=BB=E2=9C=85=20Refactorisation=20Pr?=
=?UTF-8?q?ofesseurTest?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/fr/umontp/edt/ProfesseurTest.java | 39 +++++++------------
1 file changed, 15 insertions(+), 24 deletions(-)
diff --git a/src/test/java/fr/umontp/edt/ProfesseurTest.java b/src/test/java/fr/umontp/edt/ProfesseurTest.java
index bc3378b..fea7e77 100644
--- a/src/test/java/fr/umontp/edt/ProfesseurTest.java
+++ b/src/test/java/fr/umontp/edt/ProfesseurTest.java
@@ -2,7 +2,12 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.util.stream.Stream;
+
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
class ProfesseurTest {
@@ -13,32 +18,18 @@ void testConstructeur_UnStrings_prenomNomCombine() {
assertEquals("Jean", professeur.getPrenom());
}
- @Test
- void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifferenceMajuscule() {
- Professeur professeur1 = new Professeur("DUpuis JeAN");
- Professeur professeur2 = new Professeur("DupUis JEan");
- assertEquals(professeur1, professeur2);
- }
-
- @Test
- void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecDifferenceCaractereSpeciaux() {
- Professeur professeur1 = new Professeur("prés-dupuis Jean");
- Professeur professeur2 = new Professeur("pres-dupuis Jean");
- assertEquals(professeur1, professeur2);
+ @ParameterizedTest(name = "Le professeur {0} doit être égal avec {1}")
+ @MethodSource("genererArgumentsPourtest_equals")
+ void test_equals(Professeur prof1, Professeur prof2) {
+ assertEquals(prof1, prof2);
}
- @Test
- void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecSuppressionCaractereSpeciaux() {
- Professeur professeur1 = new Professeur("D'Ôrge Jean");
- Professeur professeur2 = new Professeur("DÔrge Jean");
- assertEquals(professeur1, professeur2);
- }
-
- @Test
- void testEquals_deuxProfesseursIdentiqueAvecConstructeurDifferent_avecEgualiteEntreEspaceEtCaractereSpeciaux() {
- Professeur professeur1 = new Professeur("D'Ôrge Jean");
- Professeur professeur2 = new Professeur("D Ôrge Jean");
- assertEquals(professeur1, professeur2);
+ private static Stream genererArgumentsPourtest_equals() {
+ return Stream.of(//
+ Arguments.of(new Professeur("DUpuis JeAN"), new Professeur("DupUis JEan")), //
+ Arguments.of(new Professeur("prés-dupuis Jean"), new Professeur("pres-dupuis Jean")), //
+ Arguments.of(new Professeur("D'Ôrge Jean"), new Professeur("DÔrge Jean")), //
+ Arguments.of(new Professeur("D'Ôrge Jean"), new Professeur("D Ôrge Jean")));
}
}