Refactorisation & ajout de duel mma - Antonin Goisque
Cette pull request apporte deux contributions majeures au projet Grimoire Club :
🧼 Refactorisation de la logique métier :
- Introduction de la classe WizardClubService dans un package dédié service.
- Centralisation de la logique des duels dans une méthode unique organizeDuel(...).
- Application de principes de conception (SRP, lisibilité, validation des entrées).
- Séparation claire entre contrôleur REST, logique métier et données.
- Calcul d’un score de duel basé sur le niveau, la puissance des sorts et la possession d’une baguette.
- Ajout d’un tie-breaker basé sur l’âge.
- Tests unitaires complets pour cette nouvelle règle.
🧪 Tests ajoutés
- 4 nouveaux tests pour le duel mma :
- Victoire par score supérieur
- Égalité → départage par âge
- Ajout de tests pour le tie-breaker par âge sur tous les types de duel
- Maintien de la couverture sur les cas limites (club différent, draw…)
grimoire-club/src/main/java/iut/club/grimoire/App.java
grimoire-club/src/main/java/iut/club/grimoire/DatabaseInitializer.java
grimoire-club/src/main/java/iut/club/grimoire/db/Sorcerer.java
grimoire-club/src/main/java/iut/club/grimoire/db/WizardClub.java
grimoire-club/src/main/java/iut/club/grimoire/rest/ClubResponseDto.java
grimoire-club/src/main/java/iut/club/grimoire/rest/SorcererResponseDto.java
grimoire-club/src/main/java/iut/club/grimoire/service/SpellPowers.java
grimoire-club/src/main/java/iut/club/grimoire/service/WizardClubService.java
grimoire-club/src/main/java/iut/club/grimoire/rest/WizardClubController.java
grimoire-club/src/main/java/iut/club/grimoire/service/WizardClubService.java
grimoire-club/src/test/java/iut/club/grimoire/service/WizardClubServiceTest.java
grimoire-club/RAPPORT.md
grimoire-club/README.md
- Lancement via ./mvn.sh exec:java
- Vérifier l’API REST (POST sur /clubs/:id/members et /duels)
- Accès à la doc : /swagger, /openapi, /redoc