* </ul>
*/
public void testAddStoriesWhenValidationFails() {
// construction de l'iteration
Iteration iteration = new IterationImpl();
int iterationPersistanceId = 1;
long iterationPersistanceVersion = 2;
iteration.setPersistanceVersion(3);
iteration.setStories(new HashSet<Story>());
Integer story1PersistanceId = new Integer(3);
Integer story2PersistanceId = new Integer(4);
// construction des stories
Story story1 = new StoryImpl();
story1.setPersistanceId(story1PersistanceId);
story1.setShortDescription("scooby");
Story story2 = new StoryImpl();
story2.setPersistanceId(story2PersistanceId);
story2.setShortDescription("doo");
Set<Story> stories = new HashSet<Story>();
stories.add(story1);
stories.add(story2);
Set<Integer> storyIds = new HashSet<Integer>();
storyIds.add(story1PersistanceId);
storyIds.add(story2PersistanceId);
// les appels peuvent être réalisés dans n'importe quel ordre
MockCore.startBlock();
// recherche de l'itération
mockIterationRepository.expectFindByPersistanceId(iterationPersistanceId, iteration);
// Recherche des stories
mockStoryRepository.expectFindByPersistanceId(story1PersistanceId, story1);
mockStoryRepository.expectFindByPersistanceId(story2PersistanceId, story2);
MockCore.endBlock();
// vérification que le numéro de version est mis à jour
// validation de l'iteration, avec une erreur
errors.reject("erreur !!");
mockIterationValidator.expectValidate(iteration, errors);
// l'enregistrement n'est pas appellé
// service
Errors errors = iterationService.addStories(storyIds, iterationPersistanceId, iterationPersistanceVersion);
// vérification que les erreurs sont retournées
assertTrue(errors.hasErrors());
// vérification du bon ajout dans la liste des stories (avant la validation)
assertTrue(iteration.getStories().contains(story1));
assertTrue(iteration.getStories().contains(story2));
// vérification que le numéro de version est mis à jour
assertEquals(iterationPersistanceVersion, iteration.getPersistanceVersion());
}