From 50721fab4caea04e4387b99c4e6562a7583f43ed Mon Sep 17 00:00:00 2001 From: Nomenjanahary ANDRIAMAHERISOA Date: Thu, 12 Sep 2019 14:49:29 +0200 Subject: [PATCH 1/3] Update README.md --- README.md | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index de9867a..e2023e0 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Projet *Standard* (*Remplacer par numéro ou sujet du TP*) [![pipeline status](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/badges/master/pipeline.svg)](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/commits/master) [![coverage report](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/badges/master/coverage.svg)](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/commits/master) +# Projet *Integration M1* [![pipeline status](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/badges/master/pipeline.svg)](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/commits/master) [![coverage report](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/badges/master/coverage.svg)](https://www-apps.univ-lehavre.fr/forge/pigne/projet-standard/commits/master) - Année : **M1 iWOCS** - Matière: *matière* @@ -8,13 +8,15 @@ |Nom|Prénom| |--|--| -*Nom 1er auteur* | *Prénom 1er auteur*| -*Nom 2eme auteur* | *Prénom 2eme auteur*| + +*ANDRIAMAHERISOA* | *NOMENJANAHARY MAHANDRISOA*| ## User Story -- *Quels sont les fonctionnalités apportées par ce projet ?* -- *A remplacer avec la description de votre projet.* +- *Réalisation d'un simple modèle objet en Java qui permet de gérer un carnet d’adresses.* + Un carnet d’adresses est constitué d’entrées qui peuvent représenter des personnes ou des sociétés. Les informations et la présentation sont différentes s’il s’agis d’une personne ou d’une société. + + ## Configuration du projet @@ -22,17 +24,9 @@ Pour obtenir les informations de couverture de code des tests dans la forge, il Il faut également mettre à jour le nom du projet dans le fichier de configuration `pom.xml` dans la section ``. -## Projet de base - -Ce projet est une base pour la réalisation de TP et projets dans différentes matières en informatique. - -Ses principales fonctionnalités sont : - -- Gestion de la compilation et des dépendances avec Maven (on peut utiliser [Maven Wrapper](https://github.com/takari/maven-wrapper) et la commande `mvnw` pour s'assurer de la compatibilité) -- Framework de tests configuré pour tester les fonctionnalités du projet avec JUnit (voir les exemple dans `src/test/...`). -- Exécution des tests avec maven `./mvnw test` -- Intégration continue avec GitLab (voir fichier `.gitlab-ci.yaml`) +## Projet +Ce projet a été forké depuis le projet de base pour la réalisation de TP et projets dans différentes matières en informatique. ## Utilisation -- GitLab From 42db4b8a043598c86ec28a6154b3dbff9ca8a950 Mon Sep 17 00:00:00 2001 From: Nomenjanahary ANDRIAMAHERISOA Date: Thu, 12 Sep 2019 15:06:48 +0200 Subject: [PATCH 2/3] Create entree branch, entree package, Interface Entree, and Enumerations Presentation, Sens, Genre --- src/main/java/fr/univlehavre/entree/Entree.java | 6 ++++++ src/main/java/fr/univlehavre/entree/Genre.java | 6 ++++++ src/main/java/fr/univlehavre/entree/Presentation.java | 7 +++++++ src/main/java/fr/univlehavre/entree/Sens.java | 6 ++++++ 4 files changed, 25 insertions(+) create mode 100644 src/main/java/fr/univlehavre/entree/Entree.java create mode 100644 src/main/java/fr/univlehavre/entree/Genre.java create mode 100644 src/main/java/fr/univlehavre/entree/Presentation.java create mode 100644 src/main/java/fr/univlehavre/entree/Sens.java diff --git a/src/main/java/fr/univlehavre/entree/Entree.java b/src/main/java/fr/univlehavre/entree/Entree.java new file mode 100644 index 0000000..5d47425 --- /dev/null +++ b/src/main/java/fr/univlehavre/entree/Entree.java @@ -0,0 +1,6 @@ +package fr.univlehavre.entree; + +public interface Entree { + public String toString(Presentation presentation, Sens sens); + public Boolean recherche(String text); +} diff --git a/src/main/java/fr/univlehavre/entree/Genre.java b/src/main/java/fr/univlehavre/entree/Genre.java new file mode 100644 index 0000000..d6943eb --- /dev/null +++ b/src/main/java/fr/univlehavre/entree/Genre.java @@ -0,0 +1,6 @@ +package fr.univlehavre.entree; + +public enum Genre { + HOMME, + FEMME +} diff --git a/src/main/java/fr/univlehavre/entree/Presentation.java b/src/main/java/fr/univlehavre/entree/Presentation.java new file mode 100644 index 0000000..8754f1a --- /dev/null +++ b/src/main/java/fr/univlehavre/entree/Presentation.java @@ -0,0 +1,7 @@ +package fr.univlehavre.entree; + +public enum Presentation { + ABREGE, + SIMPLE, + COMPLET +} diff --git a/src/main/java/fr/univlehavre/entree/Sens.java b/src/main/java/fr/univlehavre/entree/Sens.java new file mode 100644 index 0000000..7913777 --- /dev/null +++ b/src/main/java/fr/univlehavre/entree/Sens.java @@ -0,0 +1,6 @@ +package fr.univlehavre.entree; + +public enum Sens { + NOM_PRENOMS, + PRENOMS_NOM +} -- GitLab From c0b7c6045836e7e00c82c3dc4d044ee52cda21aa Mon Sep 17 00:00:00 2001 From: Nomenjanahary ANDRIAMAHERISOA Date: Thu, 12 Sep 2019 17:17:15 +0200 Subject: [PATCH 3/3] create personne branch, create class Personne --- .../java/fr/univlehavre/entree/Personne.java | 91 +++++++++++++++++++ .../fr/univlehavre/entree/PersonneTest.java | 22 +++++ 2 files changed, 113 insertions(+) create mode 100644 src/main/java/fr/univlehavre/entree/Personne.java create mode 100644 src/test/java/fr/univlehavre/entree/PersonneTest.java diff --git a/src/main/java/fr/univlehavre/entree/Personne.java b/src/main/java/fr/univlehavre/entree/Personne.java new file mode 100644 index 0000000..42bedbc --- /dev/null +++ b/src/main/java/fr/univlehavre/entree/Personne.java @@ -0,0 +1,91 @@ +package fr.univlehavre.entree; + +import java.util.Arrays; + +public class Personne implements Entree { + private String nom; + private String[] prenoms; + private Genre genre; + private Personne conjoint; + private Societe societe; + private String fonction; + + public Personne(String nom, String[] prenoms, Genre genre, Personne conjoint, Societe societe, String fonction) { + this.nom = nom; + this.prenoms = prenoms; + this.genre = genre; + this.conjoint = conjoint; + this.societe = societe; + this.fonction = fonction; + } + + public String getNom() { + return nom; + } + + public String[] getPrenoms() { + return prenoms; + } + + public Genre getGenre() { + return genre; + } + + public Personne getConjoint() { + return conjoint; + } + + public Societe getSociete() { + return societe; + } + + public String getFonction() { + return fonction; + } + + @Override + public String toString(Presentation presentation, Sens sens) { + String result = null; + switch (presentation) { + case COMPLET: + result = String.format(this.formatGenre() + "\n" + "-Société: " + this.societe + "\n" + "-Fonction: " + this.fonction); + break; + case ABREGE: + result = sens == Sens.NOM_PRENOMS ? this.nom + " " + initiales(this.prenoms) : initiales(this.prenoms) + " " + this.nom; + break; + case SIMPLE: + int len = this.prenoms.length; + String[] prenoms = Arrays.copyOfRange(this.prenoms, 1, len - 1); + result = this.formatGenre() + " " + initiales(prenoms) + " (" + this.societe.getNom() + ")"; + break; + } + return result; + } + + @Override + public Boolean recherche(String text) { + return null; + } + + private String initiales(String[] prenoms) { + String result = ""; + for (String prenom : prenoms) { + result.concat(prenom + ". "); + } + return result; + } + + private String formatGenre() { + String genre = null; + switch (this.genre) { + case HOMME: + genre = "M."; + break; + case FEMME: + genre = "Mme"; + break; + } + return genre; + } + +} diff --git a/src/test/java/fr/univlehavre/entree/PersonneTest.java b/src/test/java/fr/univlehavre/entree/PersonneTest.java new file mode 100644 index 0000000..5754246 --- /dev/null +++ b/src/test/java/fr/univlehavre/entree/PersonneTest.java @@ -0,0 +1,22 @@ +package fr.univlehavre.entree; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class PersonneTest { + + @Test + void testToString() { + Personne p = new Personne("Potter", new String[]{"Prince", "Edouard"}, Genre.HOMME, null, null, "Sorcier"); + String abregee1 = p.toString(Presentation.ABREGE, Sens.NOM_PRENOMS); + String abregee2 = p.toString(Presentation.ABREGE, Sens.PRENOMS_NOM); + String simple = p.toString(Presentation.SIMPLE, Sens.NOM_PRENOMS); + String complete = p.toString(Presentation.COMPLET, Sens.NOM_PRENOMS); + + assertEquals(abregee1, "Potter P. E. ", "Test abregee 1 NOM_PRENOMS"); + assertEquals(abregee2, "P. E. Potter", "Test abregee 2 PRENOMS_NOM"); + assertEquals(simple, "M. Prince E. (Sorcier)", "Test simple NOM_PRENOMS"); + assertEquals(complete, "M. Prince Edouard Potter", "Test complete NOM_PRENOMS"); + } +} -- GitLab