Vérification contraintes Travel - Correspondence
Vérifier les contraintes sur l'association (bidirectionnelle) Travel <-> Correspondence
.
Un "Travel" peut être lié à plusieurs "Correspondence" (1 à 10), et une "Correspondence" ne peut être lié qu'à un seul "Travel".
Problèmes : Il faut vérifier plusieurs contraintes sur l'association Travel - Correspondence :
- Pour commencer il faut vérifier à chaque insertion d'une correspondence dans un travel qu'il n'y a pas plus de 9 correspondences dans ce Travel pour ne pas dépasser la limite
- De la même façon il ne faut pas qu'un travel soit vide
- Il faut vérifier que lorsqu'une correspondence est ajoutée à un Travel que son attribut travel soit mis à jour
- Il faut vérifier que la liste de correspondence de Travel soit mise à jour lorsqu'une correspondence est ajoutée à ce même Travel
- Enfin selon le diagramme UML du projet de base on ne peut pas supprimer une correspondence d'un travel car il faut qu'une correspondence soit toujours liée à un travel
Solutions :
- Pour la première contrainte on vérifiera juste lors de l'ajout que la taille de la liste de correspondences de travel n'est pas égale à 10
- De même pour la suppression (voir 5.) on vérifiera que la la taille de la liste de correspondences de travel n'est pas égale à 1
- Pour le point 3. on vérifiera juste lorsque l'on ajoute une correspondence à un travel avec la méthode addCorrespondence que l'attribut travel de la correspondence en question est mis à jour.
- Lors de la création d'une correspondence on lui passe en paramètre un travel, on aura donc à vérifier que la liste de correspondence de ce travel est mise à jour.
- Enfin pour la suppression d'une correspondence d'un travel on a décidé de modifier le diagramme uml du projet de base pour supporter les suppresion de correspondences d'un travel on passe donc la cardinalité de correspondence vers travel de 1 à [0,1]. Au niveau du comportement de l'application c'est plus cohérent si on veut par exemple supprimer une correpondence d'un travel inséré par erreur par contre par des soucis de cohérence (voir on ne pourra supprimer que la première et la dernière correspondence d'un travel.