@Test
 public void testaGetCaronas() {
   Assert.assertTrue(usuario1.getCaronas().size() == 0);
   Assert.assertTrue(usuario2.getCaronas().size() == 0);
   Assert.assertTrue(usuario3.getCaronas().size() == 0);
   Assert.assertTrue(usuario4.getCaronas().size() == 0);
 }
  /**
   * Metodo que retorna das as caronas do sistema
   *
   * @return - retorna uma List<Carona> com todas as caronas
   */
  public List<Carona> getCaronas() {
    List<Carona> retorno = new LinkedList<Carona>();

    for (Usuario UsuarioTemp : listaDeUsuarios) {
      retorno.addAll(UsuarioTemp.getCaronas());
    }
    return retorno;
  }
 /**
  * Metodo que localiza uma carona pelo seu ID
  *
  * @param idCarona - Recebe uma String idCarona
  * @return - retrorna uma Carona caso exista alguma com o ID passado
  */
 public Carona localizaCaronaPorId(String idCarona) {
   for (Usuario usuarioTemp : listaDeUsuarios) {
     for (Carona caronaTemp : usuarioTemp.getCaronas()) {
       if (caronaTemp.getIdCarona().equals(idCarona)) {
         return caronaTemp;
       }
     }
   }
   return null;
 }
 /**
  * Metodo que procura uma carona pelo seu ID
  *
  * @param idCarona - Recebe uma String ID
  * @return - Retorna uma Carona caso exista uma carona com o ID passado
  * @throws CaronaException - Lança exceção caso nao exista esse ID associado a uma carona
  */
 public Carona getCaronaId(String idCarona) throws CaronaException {
   for (Usuario usuario : listaDeUsuarios) {
     for (Carona caronaTemp : usuario.getCaronas()) {
       if (caronaTemp.getIdCarona().equals(idCarona)) {
         return caronaTemp;
       }
     }
   }
   return null;
 }
  /**
   * Metodo que retorna todas as Caronas cadastradas no sistema.
   *
   * @return - Retorna uma List<Carona> com todas as caronas cadastradas no sistema.
   */
  public List<Carona> getTodasAsCaronas() {
    List<Carona> retorno = new LinkedList<Carona>();

    for (Usuario usuario : listaDeUsuarios) {
      for (Carona caronaTemp : usuario.getCaronas()) {
        retorno.add(caronaTemp);
      }
    }
    return retorno;
  }
  /**
   * Metodo que localiza uma carona que possua uma origem específica
   *
   * @param origem- Recebe uma String origem
   * @return - Retorna uma Carona que possua a origem especificada
   */
  public List<Carona> localizaCaronaPorOrigem(String origem) {
    List<Carona> retorno = new LinkedList<Carona>();

    for (Usuario UsuarioTemp : listaDeUsuarios) {
      for (Carona caronaTemp : UsuarioTemp.getCaronas()) {
        if (caronaTemp.getOrigem().equals(origem)) {
          retorno.add(caronaTemp);
        }
      }
    }
    return retorno;
  }
  /**
   * Metodo que localiza uma carona que possua destino específico
   *
   * @param destino- Recebe uma String destino
   * @return - Retorna uma Carona que possua o destino especificado
   */
  public List<Carona> localizaCaronaPorDestino(String destino) {
    List<Carona> retorno = new LinkedList<Carona>();

    for (Usuario UsuarioTemp : listaDeUsuarios) {
      for (Carona caronaTemp : UsuarioTemp.getCaronas()) {
        if (caronaTemp.getDestino().equals(destino)) {
          retorno.add(caronaTemp);
        }
      }
    }
    return retorno;
  }
  /**
   * Metodo que retorna uma lista com as Caronas Rachadas que possuem origem e destino passado como
   * parametro.
   *
   * @param origem - Recebe uma String origem
   * @param destino - Recebe uma String destino
   * @return - Retorna uma List<Carona> com as caronas Rachadas.
   */
  public List<Carona> localizarCaronaRachada(String origem, String destino) {
    List<Carona> retorno = new LinkedList<Carona>();

    for (Usuario usuarioTemp : listaDeUsuarios) {
      for (Carona caronaTemp : usuarioTemp.getCaronas()) {
        if (caronaTemp.getTipoCarona().equals(TiposCarona.RACHADACOMUM)
            || caronaTemp.getTipoCarona().equals(TiposCarona.RACHADAESCAPADA)
            || caronaTemp.getTipoCarona().equals(TiposCarona.RACHADAMUNICIPAL)) {
          if (caronaTemp.getOrigem().equals(origem) && caronaTemp.getDestino().equals(destino)) {
            retorno.add(caronaTemp);
          }
        }
      }
    }
    return retorno;
  }
  /**
   * Metodo que localiza uma CaronaMunicipal através da CIDADE
   *
   * @param cidade - Recebe uma String cidade
   * @return - retorna uma List<Carona> com as carona municipais que possuem a Cidade passada
   * @throws CaronaException - Lança exceção caso nao exista essa cidade.
   */
  public List<Carona> localizarCaronaMunicipal(String cidade) throws CaronaException {
    List<Carona> retorno = new LinkedList<Carona>();
    boolean existeCidade = false;

    for (Usuario UsuarioTemp : listaDeUsuarios) {
      for (Carona caronaTemp : UsuarioTemp.getCaronas()) {
        if (caronaTemp.getTipoCarona().equals(TiposCarona.MUNICIPAL)) {
          if (((CaronaMunicipal) caronaTemp).getCidade().equals(cidade)) {
            existeCidade = true;
            retorno.add(caronaTemp);
          }
        }
      }
    }
    if (!existeCidade) {
      throw new CaronaException("Cidade inexistente");
    }
    return retorno;
  }