### Question:
MusicRepository { @Transactional public List<String> getMatchingSongNamesForArtist( String artistName, String prefix ) { String selectSQL = "SELECT name FROM songs WHERE artist_id=? " + "and lower(name) like lower(?) " + "order by name asc"; Artist artist = internalFindArtistByName(artistName, true); return jdbcTemplate.query( selectSQL, new Object[]{artist.getId(), prefix + "%"}, (rs, rowNum) -> rs.getString("name")); } MusicRepository(JdbcTemplate template); @Transactional List<Song> getSongsForArtist(String artistName); @Transactional List<String> getMatchingSongNamesForArtist(
            String artistName,
            String prefix
    ); @Transactional List<String> getMatchingArtistNames(String prefix); @Transactional Song getSong(String artistName, String name); @Transactional Song voteForSong(String artistName, String name);  }### Answer:
@Test void testMatchingSongNamesForArtist() { List<String> names = musicRepository.getMatchingSongNamesForArtist( "Threadbare Loaf", "W" ); assertEquals(names.size(), 1); assertEquals(names.get(0), "What Happened To Our First CD?"); }