Package com.pugh.sockso.music

Source Code of com.pugh.sockso.music.PlaylistTest

/*
* PlaylistTest.java
*
* Created on Aug 9, 2007, 8:44:41 PM
*
* Tests the Playlist class
*
*/

package com.pugh.sockso.music;

import com.pugh.sockso.Utils;
import com.pugh.sockso.tests.SocksoTestCase;
import com.pugh.sockso.tests.TestDatabase;
import com.pugh.sockso.web.User;

import java.util.List;

public class PlaylistTest extends SocksoTestCase {

    private TestDatabase db;
   
    private User user;
   
    @Override
    public void setUp() throws Exception {
        user = new User( 1, "Foo" );
        db = new TestDatabase();
        db.fixture( "playlists" );
    }
   
    private void userPlaylists() throws Exception {
        db.update(" insert into playlists ( name, date_created, date_modified, user_id ) values ( '" +Utils.getRandomString(20)+ "',now(),now(),1 ) " );
    }
   
    public void testConstructor() {
        assertNotNull( new Playlist(1,"foo") );
        assertNotNull( new Playlist(1,"foo",1) );
        assertNotNull( new Playlist(1,"foo",1,null) );
    }

    public void testGetUser() {
        final User user = new User( 1, "foo" );
        final Playlist p = new Playlist( 1, "foo", 1, user );
        assertSame( user, p.getUser() );
    }
   
    public void testGetTrackCount() {
        final Playlist p = new Playlist( 1, "foo", 99 );
        assertEquals( 99, p.getTrackCount() );
    }

    public void testGetSelectTracksSql() {
        final int playlistId = 123;
        final String orderBySql = " where myfield = 1 ";
        final String sql = Playlist.getSelectTracksSql( playlistId, orderBySql );
        assertTrue( sql.matches(".*"+playlistId+".*") );
        assertTrue( sql.matches(".*"+orderBySql+".*") );
    }
   
    public void testFindReturnsPlaylistThatMatchesTheIdSpecified() throws Exception {
        Playlist playlist = Playlist.find( db, 1 );
        assertEquals( playlist.getName(), "Foo Foo" );
    }
   
    public void testFindReturnsNullWhenTheSpecifiedPlaylistDoesNotExist() throws Exception {
        assertNull( Playlist.find(db,123) );
    }
   
    public void testFindallReturnsAllPlaylists() throws Exception {
        List<Playlist> playlists = Playlist.findAll( db, 100, 0 );
        assertEquals( 3, playlists.size() );
    }
   
    public void testFindallCanBeOffset() throws Exception {
        List<Playlist> playlists = Playlist.findAll( db, 100, 1 );
        assertEquals( 2, playlists.size() );
        assertEquals( "A Playlist", playlists.get(0).getName() );
        assertEquals( "Foo Foo", playlists.get(1).getName() );
    }
   
    public void testFindallCanBeLimited() throws Exception {
        List<Playlist> playlists = Playlist.findAll( db, 2, 0 );
        assertEquals( 2, playlists.size() );
        assertEquals( "Bar Bar", playlists.get(0).getName() );
        assertEquals( "A Playlist", playlists.get(1).getName() );
    }
   
    public void testFindallReturnsNewestPlaylistsFirst() throws Exception {
        List<Playlist> playlists = Playlist.findAll( db, 100, 0 );
        assertEquals( "Bar Bar", playlists.get(0).getName() );
        assertEquals( "Foo Foo", playlists.get(2).getName() );
    }
   
    public void testFindallWithLimitOfMinusOneMeansNoLimit() throws Exception {
        for ( int i=0; i<200; i++ ) {
            db.update( " insert into playlists ( name, date_created, date_modified ) " +
                       " values ( '" +Utils.getRandomString(20)+ "', now(), now() )" );
        }
        List<Playlist> playlists = Playlist.findAll( db, -1, 0 );
        assertEquals( 203, playlists.size() );
    }
   
    public void testFindallReturnsUsersWithPlaylistsTheyHaveCreated() throws Exception {
        List<Playlist> playlists = Playlist.findAll( db, 100, 0 );
        assertEquals( "MyUser", playlists.get(1).getUser().getName() );
    }
   
    public void testFindReturnsUserWhoCreatedPlaylistWhenThereIsOne() throws Exception {
        Playlist playlist = Playlist.find( db, 2 );
        assertEquals( "MyUser", playlist.getUser().getName() );
    }
   
    public void testGettracksReturnsTheTracksForThePlaylist() throws Exception {
        List<Track> tracks = Playlist.find( db, 2 ).getTracks( db );
        assertEquals( 3, tracks.size() );
    }
   
    public void testGettracksReturnsEmptyWhenThereAreNoTracksForThePlaylist() throws Exception {
        List<Track> tracks = Playlist.find( db, 1 ).getTracks( db );
        assertEquals( 0, tracks.size() );
    }
   
    public void testGettracksReturnsEmptyWhenThePlaylistDoesntExistInTheDatabase() throws Exception {
        List<Track> tracks = new Playlist(99999,"Foo").getTracks( db );
        assertEquals( 0, tracks.size() );
    }
   
    public void testFindallforuserReturnsPlaylistsForSpecifiedUser() throws Exception {
        userPlaylists();
        List<Playlist> tracks = Playlist.findAllForUser( db, user, 100, 0 );
        assertEquals( 2, tracks.size() );
    }
   
    public void testFindallforuserReturnsPlaylistsEmptyWhenNullSpecifiedForUser() throws Exception {
        userPlaylists();
        List<Playlist> tracks = Playlist.findAllForUser( db, null, 100, 0 );
        assertEquals( 0, tracks.size() );
    }
   
    public void testFindallforuserCanBeLimited() throws Exception {
        userPlaylists();
        List<Playlist> tracks = Playlist.findAllForUser( db, user, 1, 0 );
        assertEquals( 1, tracks.size() );
    }
   
    public void testFindallforuserCanBeOffset() throws Exception {
        userPlaylists();
        List<Playlist> tracks = Playlist.findAllForUser( db, user, 100, 1 );
        assertEquals( 1, tracks.size() );
    }
   
    public void testFindallforuserWithLimitOfMinusOneMeansNoLimit() throws Exception {
        userPlaylists();
        List<Playlist> tracks = Playlist.findAllForUser( db, user, -1, 0 );
        assertEquals( 2, tracks.size() );
    }
   
    public void testFindallforsiteReturnsOnlySitePlaylists() throws Exception {
        List<Playlist> tracks = Playlist.findAllForSite( db, 100, 0 );
        assertEquals( 2, tracks.size() );
    }
   
    public void testFindallforsiteCanBeLimited() throws Exception {
        List<Playlist> tracks = Playlist.findAllForSite( db, 1, 0 );
        assertEquals( 1, tracks.size() );
    }
   
    public void testFindallforsiteCanBeOffset() throws Exception {
        List<Playlist> tracks = Playlist.findAllForSite( db, 100, 1 );
        assertEquals( 1, tracks.size() );
    }
   
    public void testFindallforsiteWithLimitMinusOneMeansNoLimit() throws Exception {
        List<Playlist> tracks = Playlist.findAllForSite( db, -1, 0 );
        assertEquals( 2, tracks.size() );
    }
   
}
TOP

Related Classes of com.pugh.sockso.music.PlaylistTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.