Contraintes sur l'association Calendar <-> Agent non respectées
Description du besoin
Les contraintes entre Calendar
et Agent
ne sont pas respectées. Il faut qu'un agent possède un calendrier et inversement (un calendrier ne doit être associé qu'à un seul agent).
On peut actuellement:
- Remplacer le calendrier d'un agent par un calendrier ayant une valeur nulle.
- Remplacer l'agent d'un calendrier par un agent ayant une valeur nulle.
Choix des tests à effectuer
Afin de satisfaire ce ticket, la classe Calendar
devra :
- Refuser la modification de l'agent associé au calendrier dans le cas où celui-ci est nul.
- Tester la méthode
setOwner
avec un agent nul. Le résultat attendu est le refus de la modification de l'agent . - Tester la méthode
setOwner
avec un agent non nul. Le résultat attendu est le remplacement de l'agent. - Tester la cohérence à l'aide de la méthode
getOwner
.
- Tester la méthode
Par ailleur la classe Agent
devra:
- Refuser la modification du calendrier associé à un agent dans le cas où le calendrier est nul.
- Tester la méthode
setCalendar
avec un calendrier nul. Le résultat voulu est le refus de la modification. - Tester cette même méthode avec un calendrier non nul. La modification doit pouvoir être acceptée.
- Tester la cohérence avec
getCalendar
.
- Tester la méthode
Solution à mettre en œuvre
Les changements concernent uniquement les classes Agent
et Calendar
:
- Pour la classe
Agent
on doit modifier la méthodeSetCalendar
:- Ils doivent refuser les arguments
null
et renvoyer uneRuntineExpection
de typeIllegalArgumentException
.
- Ils doivent refuser les arguments
- Pour la classe
Calendar
on doit uniquement modifier la méthodesetOwner
:- Elle doit renvoyer une une
RuntineExpection
de typeIllegalArgumentException
lorsque le nouvel agent a une valeur nulle.
- Elle doit renvoyer une une
Issue numéro 9 dans l’énoncé