@RequestMapping(method = RequestMethod.PUT)
 public void creer(@PathVariable String login, @RequestBody Utilisateur utilisateur)
     throws UtilisateurInvalideException {
   log.info(
       "=====> Création ou modification de l'utilisateur de login {}: {}.", login, utilisateur);
   utilisateur.setLogin(login);
   utilisateursServices.creer(utilisateur);
 }
  @Test
  public void creerAppelNotification() throws UtilisateurInvalideException {
    /** Etant donné un utilsateur à créer. */
    Utilisateur utilisateur = Utilisateur.builder().login(RandomStringUtils.random(10)).build();

    /** Lorsqu'on appelle le service de création. */
    services.creer(utilisateur);

    /** Alors le service de notification est appelé. */
    Mockito.verify(notificationsServices).notifier(Mockito.anyString());
  }
  @Test
  public void creerVerificationExistanceUtilisateur() throws UtilisateurInvalideException {
    /** Etant donné un utilsateur à créer. */
    Utilisateur utilisateur = Utilisateur.builder().login(RandomStringUtils.random(10)).build();
    /* Et que l'utilisateur existe sur le système */
    UtilisateursServices spy = Mockito.spy(services);
    Mockito.when(spy.rechercherParLogin(utilisateur.getLogin())).thenReturn(utilisateur);

    try {
      /** Lorsqu'on appelle le service de création. */
      spy.creer(utilisateur);

      fail("Une exception devrait être levée.");
    } catch (UtilisateurInvalideException e) {
      /** Alors le service de vérification de l'existance de l'utilsiateur est appelé. */
      Mockito.verify(spy).rechercherParLogin(utilisateur.getLogin());

      /* Et une exception est levée. */
      Assert.assertEquals(
          UtilisateurInvalideException.ErreurUtilisateur.UTILISATEUR_EXISTANT, e.getErreur());
    }
  }