Mise en place d'une cohérence entre les correspondances d'un voyage
Description du problème
Cette issue a pour objectif de garantir une cohérence entre un ensemble de correspondance pour un voyage donné. Actuellement les incohérences suivantes sont possibles :
- La ville d'arrivée de la ième correspondance peut être différente de la ville de départ de la (i+1)ème correspondance
- L'horaire d'arrivée de la ième correspondance peut être différente de l'horaire de départ de la (i+1)ème correspondance
Choix des tests à effectuer
Afin de satisfaire ce ticket, la classe Travel
devra :
- Vérifier que les méthodes
addFirstCorrespondance
etaddLastCorrespondance
- Ajoute une correspondance au début d'une autre correspondance (respectivement à la fin) lorsque les conditions de cohérence sont respectées
- Echoue dans les autres cas et retourne une
IllegalArgumentException
- Pour les méthodes
removeFirstCorrespondance
etremoveLastCorrespondance
- Vérifier que les méthodes suppriment bien les correspondances souhaitées.
Solution à mettre en œuvre
Du fait que les correspondances sont toutes liées entre elles. Il est est impossible de supprimer une correspondance, qui n'est ni au début ni à la fin de l'ensemble, sans rompre la cohérence de cet ensemble.
Les changements concernent uniquement la classe Travel
et consistent à :
- Ajouter les deux méthodes
addFirstCorrespondance
etaddLastCorrespondance
- Ajoute de manière trivale s'il n'y a aucune correspondance initiale
- Sinon pour la méthode
addFirstCorrespondance
- Vérifier que la ville d'arrivée correspond à la ville de départ de la dernière correspondances
- Vérifier que l'horaire d'arrivée est inférieur à l'horaire de départ de la dernière correspondance
- Ou pour la méthode
addLastCorrespondance
- Vérifier que la ville de départ correspond à la ville d'arrivée de la dernière correspondances
- Vérifier que l'horaire de départ est supérieur à l'horaire d'arrivée de la dernière correspondance
- Ajouter les deux méthodes
removeFirstCorrespondance
etremoveLastCorrespondance
- Supprime simplement la première (respectivement dernière) correspondance
Issue numéro 7 dans l’énoncé