Commit bba62e8545a611d789836d4c4d8763c1b9a98bfa

Authored by rvangrev
1 parent 5fd5c185

Ajout de tests pour vérifications.

La suppression de l'owner semble ne pas effacer les commentaires associés
src/main/java/fr/plil/sio/examen/services/OwnerServiceImpl.java
1 1 package fr.plil.sio.examen.services;
2 2  
3 3 import fr.plil.sio.examen.api.Owner;
  4 +import fr.plil.sio.examen.api.Comment;
  5 +import fr.plil.sio.examen.api.Animal;
  6 +import fr.plil.sio.examen.repositories.AnimalRepository;
  7 +import fr.plil.sio.examen.repositories.CommentRepository;
4 8 import fr.plil.sio.examen.repositories.OwnerRepository;
  9 +import java.util.ArrayList;
  10 +import java.util.List;
5 11 import org.springframework.beans.factory.annotation.Autowired;
6 12 import org.springframework.stereotype.Service;
7 13  
... ... @@ -10,10 +16,42 @@ public class OwnerServiceImpl implements OwnerService {
10 16  
11 17 @Autowired
12 18 private OwnerRepository ownerRepository;
  19 +
  20 + @Autowired
  21 + private CommentRepository commentRepository;
  22 +
  23 + @Autowired
  24 + private AnimalRepository animalRepository;
13 25  
14 26 @Override
15 27 public void delete(Owner owner) {
16   - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  28 + if(owner==null){
  29 + throw new IllegalArgumentException("owner must be not null");
  30 + }
  31 + if(ownerRepository.findByName(owner.getName()).size()==0){
  32 + throw new IllegalArgumentException("owner not in database");
  33 + }
  34 +
  35 + //Suppression de ses commentaires
  36 +
  37 + //Création d'une liste pour stocker les commentaires
  38 + List<Comment> listComments = commentRepository.findByReporter(owner);
  39 +
  40 + //Boucle pour la suppression de ses commentaires
  41 + for(Comment comment : listComments){
  42 + commentRepository.delete(comment);
  43 + }
  44 +
  45 + //Attention, les animaux ne peuvent pas avoir un owner null
  46 + List<Animal> listAnimals = animalRepository.findByOwner(owner);
  47 + for(Animal animal : listAnimals){
  48 + //On set le nouvel owner a un owner de base (du constructeur par défaut)
  49 + animal.setOwner(new Owner());
  50 + }
  51 +
  52 + //Suppression de l'owner
  53 + ownerRepository.delete(owner);
  54 +
17 55 }
18 56  
19 57 @Override
... ...