### Question:
Time { public Jogador getArtilheiro() { Comparator<Jogador> maiorGols = Comparator.comparing(Jogador::getGols); Comparator<Jogador> peloNome= Comparator.comparing(Jogador::getNome); Optional<Jogador> artilheiro = jogadores.stream() .max(maiorGols.thenComparing(peloNome)); return artilheiro .orElseThrow(() -> new IllegalStateException("Sempre deve ter um artilheiro no time")); } private  Time(String nome); List<Jogador> getJogadores(); void adicionar(Jogador jogador); static Time of(String nome); int total(); List<Jogador> getFantastico(); Map<Posicao, List<Jogador>> getJogadorByPosicao(); Jogador getArtilheiro(); List<Jogador> getJogadoresOrderByGols(); boolean removeJogador(String nome); @Override String toString();  }### Answer:
@Test @DisplayName("Deve retornar o artilheiro do time") void deveRetornarOArtilheiro() { Jogador artilheiro = bahia.getArtilheiro(); assertAll( () -> assertEquals(artilheiro.getNome(), "Lima"), () ->assertEquals(artilheiro.getGols(), 5) ); }