@Test(expected = IllegalArgumentException.class)
  public void naoDeveDeixarAdicionarUmaProfissaoComOMesmoNome() {
    Profissao manicure = new Profissao();
    manicure.setNome("manicure");

    when(profissaoRepo.findByName(manicure.getNome())).thenReturn(manicure);

    profissaoService.criarNovaProfissao(manicure);
  }
  @Test
  public void deveDeletarAProfissaoEscolhidaDeTodosOsFuncionariosQueAPossuem() {
    Profissao manicure = mock(Profissao.class);
    when(manicure.getId()).thenReturn(1l);

    Key<Profissao> manicureKey = new Key<Profissao>(Profissao.class, 1l);
    Key<Profissao> pedicureKey = new Key<Profissao>(Profissao.class, 2l);
    Key<Profissao> depiladoraKey = new Key<Profissao>(Profissao.class, 3l);

    Funcionario abreu = new Funcionario();
    abreu.setNome("Abreu");
    abreu.setId(1l);
    List<Key<Profissao>> profissoesAbreu = new ArrayList<Key<Profissao>>();
    profissoesAbreu.add(depiladoraKey);
    profissoesAbreu.add(pedicureKey);
    abreu.setProfissao(profissoesAbreu);

    Funcionario creudete = new Funcionario();
    creudete.setNome("Creudete");
    creudete.setId(2l);
    List<Key<Profissao>> profissoesCreudete = new ArrayList<Key<Profissao>>();
    profissoesCreudete.add(manicureKey);
    profissoesCreudete.add(pedicureKey);
    creudete.setProfissao(profissoesCreudete);

    List<Funcionario> funcionarios = new ArrayList<Funcionario>();
    funcionarios.add(abreu);
    funcionarios.add(creudete);

    when(funcionarioRepo.findByProfissao(any(Profissao.class))).thenReturn(funcionarios);

    profissaoService.deletaProfissaoDosFuncionariosQueAPossuem(manicure);

    assertEquals(2, abreu.getProfissao().size());
    assertEquals(1, creudete.getProfissao().size());
  }