Skip to content

Refactorisation & ajout de duel mma - Antonin Goisque

GOISQUE-SARRAZIN ANTONIN requested to merge goisquesarrazin/2025:main into main

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.

️ Nouvelle fonctionnalité : duel mma (Mixed Magic Attributes)

  • 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…)

📁 Fichiers modifiés

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

À tester

  • 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

Merge request reports