package com.pugh.sockso.music; import com.pugh.sockso.tests.SocksoTestCase; import com.pugh.sockso.tests.TestDatabase; import java.util.List; public class MusicSearchTest extends SocksoTestCase { private TestDatabase db; private MusicSearch search; @Override protected void setUp() throws Exception { db = new TestDatabase(); db.fixture( "singleTrack" ); db.fixture( "singlePlaylist" ); search = new MusicSearch( db ); } public void testSearchingForATrackReturnsIt() throws Exception { List<MusicItem> items = search.search( "My Track" ); assertEquals( 1, items.size() ); assertEquals( "My Track", items.get(0).getName() ); } public void testSearchingForAnAlbumReturnsIt() throws Exception { List<MusicItem> items = search.search( "My Album" ); assertEquals( 1, items.size() ); assertEquals( "My Album", items.get(0).getName() ); } public void testSearchingForAnArtistReturnsIt() throws Exception { List<MusicItem> items = search.search( "My Artist" ); assertEquals( 1, items.size() ); assertEquals( "My Artist", items.get(0).getName() ); } public void testSearchingForAPlaylistReturnsIt() throws Exception { List<MusicItem> items = search.search( "Foo Bar" ); assertEquals( 1, items.size() ); assertEquals( "Foo Bar", items.get(0).getName() ); } public void testPlaylistsReturnedAsPlaylistObjects() throws Exception { List<MusicItem> items = search.search( "Foo Bar" ); assertEquals( Playlist.class, items.get(0).getClass() ); } public void testTracksReturnedAsTrackObjects() throws Exception { List<MusicItem> items = search.search( "My Track" ); assertEquals( Track.class, items.get(0).getClass() ); } public void testTracksReturnedHaveArtistAndAlbum() throws Exception { List<MusicItem> items = search.search( "My Track" ); Track track = (Track) items.get( 0 ); assertEquals( "My Artist", track.getArtist().getName() ); assertEquals( "My Album", track.getAlbum().getName() ); } public void testAlbumsReturnedAsAlbumObjects() throws Exception { List<MusicItem> items = search.search( "My Album" ); assertEquals( Album.class, items.get(0).getClass() ); } public void testAlbumsReturnedHaveArtist() throws Exception { List<MusicItem> items = search.search( "My Album" ); Album album = (Album) items.get( 0 ); assertEquals( "My Artist", album.getArtist().getName() ); } }