### Question:
RadioBrowser { public List<Station> listStationsBy(@NonNull final Paging paging, @NonNull final SearchMode searchMode, @NonNull final String searchTerm, final ListParameter...listParam) { MultivaluedMap<String, String> requestParams = new MultivaluedHashMap<>(); applyPaging(paging, requestParams); Arrays.stream(listParam).forEach(l -> l.applyTo(requestParams)); Entity<Form> entity = Entity.form(requestParams); Response response = null; try { response = builder(webTarget .path("json/stations") .path(searchMode.name().toLowerCase()) .path(searchTerm)) .post(entity); checkResponseStatus(response); return response.readEntity(new GenericType<List<Station>>() { }); } finally { close(response); } } RadioBrowser(@NonNull final String apiUrl,
                         final int timeout,
                         @NonNull final String myUserAgent);  RadioBrowser(final int timeout,
                        final String myUserAgent); Map<String, Integer> listCountries(); Map<String, Integer> listCodecs(); Map<String, Integer> listLanguages(); Map<String, Integer> listTags(); List<Station> listStations(@NonNull final Paging paging,
                                      final ListParameter...listParam); Stream<Station> listStations(final ListParameter...listParam); List<Station> listBrokenStations(@NonNull final Limit limit); Stream<Station> listBrokenStations(); List<Station> listImprovableStations(@NonNull final Limit limit); Stream<Station> listImprovableStations(); List<Station> listTopClickStations(@NonNull final Limit limit); Stream<Station> listTopClickStations(); List<Station> listTopVoteStations(@NonNull final Limit limit); Stream<Station> listTopVoteStations(); List<Station> listLastClickStations(@NonNull final Limit limit); Stream<Station> listLastClickStations(); List<Station> listLastChangedStations(@NonNull final Limit limit); Stream<Station> listLastChangedStations(); Optional<Station> getStationByUUID(@NonNull final UUID uuid); List<Station> listStationsBy(@NonNull final Paging paging,
                                        @NonNull final SearchMode searchMode,
                                        @NonNull final String searchTerm,
                                        final ListParameter...listParam); Stream<Station> listStationsBy(
            @NonNull final SearchMode searchMode,
            @NonNull final String searchTerm,
            final ListParameter...listParam); URL resolveStreamUrl(@NonNull final UUID stationUUID); UUID postNewStation(@NonNull final Station station); void voteForStation(@NonNull final UUID stationUUID);  }### Answer:
@Test public void listStationsByWithName() { List<Station> stations = browser.listStationsBy(FIRST_FIVE, SearchMode.BYNAME, "synthradio"); assertThat(stations, notNullValue()); assertThat(stations.size(), is(1)); assertThat(stations.get(0).getUrl(), is("http: }
@Test public void listStationsBy() { List<Station> stations = browser.listStationsBy(FIRST_FIVE, SearchMode.BYNAME, "ding"); assertThat(stations, notNullValue()); assertThat(stations.size(), is(FIRST_FIVE.getLimit())); assertThat(stations.get(0).getName().toLowerCase(), containsString("ding")); }
@Test public void listStationsByWithStream() { List<Station> stations = browser .listStationsBy(SearchMode.BYNAME, "pop") .limit(256) .collect(Collectors.toList()); assertThat(stations, notNullValue()); assertThat(stations, is(not(Collections.emptyList()))); }