package com.pugh.sockso.music; import com.pugh.sockso.tests.SocksoTestCase; import com.pugh.sockso.tests.TestDatabase; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class ArtistTest extends SocksoTestCase { private TestDatabase db; @Override protected void setUp() { db = new TestDatabase(); } public void testGetters() { final int id = 123, albumCount = 456, trackCount = 789, playCount = 159; final String name = "some name"; final Date dateAdded = new Date(); final Artist artist = new Artist.Builder() .id(id) .name(name) .dateAdded(dateAdded) .albumCount(albumCount) .trackCount(trackCount) .playCount(playCount) .build(); assertEquals( dateAdded, artist.getDateAdded() ); assertEquals( trackCount, artist.getTrackCount() ); assertEquals( albumCount, artist.getAlbumCount() ); assertEquals( playCount, artist.getPlayCount() ); } public void testFindReturnsArtistById() throws Exception { db.fixture( "singleTrack" ); Artist artist = Artist.find( db, 1 ); assertEquals( 1, artist.getId() ); assertEquals( "My Artist", artist.getName() ); } public void testFindReturnsNullForInvalidArtistId() throws Exception { assertNull( Artist.find(new TestDatabase(),123) ); } public void testFindallReturnsAllArtists() throws Exception { db.fixture( "artists" ); List<Artist> artists = Artist.findAll( db, 3, 0 ); assertEquals( 3, artists.size() ); } public void testFindallCanBeLimited() throws Exception { db.fixture( "artists" ); List<Artist> artists = Artist.findAll( db, 2, 0 ); assertEquals( 2, artists.size() ); } public void testFindallCanBeOffset() throws Exception { db.fixture( "artists" ); List<Artist> artists = Artist.findAll( db, 3, 1 ); assertEquals( 2, artists.size() ); } public void testFindallLimitOfMinusOneMeansNoLimit() throws Exception { db.fixture( "artists" ); List<Artist> artists = Artist.findAll( db, -1, 0 ); assertEquals( 3, artists.size() ); } public void testFindallReturnsArtistsAlphabetically() throws Exception { db.fixture( "artists" ); List<Artist> artists = Artist.findAll( db, -1, 0 ); assertEquals( "A Artist", artists.get(0).getName() ); assertEquals( "Xylophone", artists.get(2).getName() ); } public void testFindallReturnsArtistsWithTheirDateAddedSet() throws Exception { db.fixture( "artists" ); List<Artist> artists = Artist.findAll( db, -1, 0 ); final Date date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2011-02-03 01:02:03"); assertEquals(date, artists.get(0).getDateAdded()); } }