Package com.pugh.sockso.web.action

Source Code of com.pugh.sockso.web.action.HomerTest

package com.pugh.sockso.web.action;

import com.pugh.sockso.db.Database;
import com.pugh.sockso.music.Album;
import com.pugh.sockso.music.Artist;
import com.pugh.sockso.music.Genre;
import com.pugh.sockso.music.Track;
import com.pugh.sockso.tests.SocksoTestCase;
import com.pugh.sockso.tests.TestDatabase;
import com.pugh.sockso.tests.TestResponse;
import com.pugh.sockso.tests.TestUtils;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import static org.easymock.EasyMock.*;

public class HomerTest extends SocksoTestCase {
   
    public void testGetRecentlyPlayedAlbums() throws SQLException {
       
        final int total = 5;
       
        final ResultSet rs = createNiceMock( ResultSet.class );
        expect( rs.next() ).andReturn( true );
        expect( rs.next() ).andReturn( true );
        expect( rs.next() ).andReturn( false );
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, total );
        expect( st.executeQuery() ).andReturn( rs ).times( 1 );
        st.close();
        replay( st );
       
        final Database db = createMock( Database.class );
        expect( db.prepare((String)anyObject()) ).andReturn( st ).times( 1 );
        replay( db );
       
        final Homer h = new Homer();
        h.setDatabase( db );
       
        final List<Album> albums = h.getRecentlyPlayedAlbums( total );
       
        assertNotNull( albums );
        assertEquals( 2, albums.size() );
       
        verify( db );
        verify( st );
        verify( rs );
       
       
    }

    public void testGetRecentlyPlayedAlbumsQuery() throws Exception {

        final Database db = new TestDatabase();
        final Homer h = new Homer();
       
        h.setDatabase( db );
        h.getRecentlyPlayedAlbums( 10 );
       
    }
   
    public void testGetRecentlyPlayedTracks() throws SQLException {
       
        final long total = 10;
               
        final ResultSet rs = createNiceMock( ResultSet.class );
        expect( rs.next() ).andReturn( true );
        expect( rs.next() ).andReturn( true );
        expect( rs.next() ).andReturn( false );
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, (int) total );
        expect( st.executeQuery() ).andReturn( rs ).times( 1 );
        st.close();
        replay( st );
       
        final Database db = createMock( Database.class );
        expect( db.prepare((String)anyObject()) ).andReturn( st ).times( 1 );
        replay( db );
       
        final Homer h = new Homer();
        h.setDatabase( db );
       
        final List<Track> tracks = h.getRecentlyPlayedTracks( 10 );
       
        assertNotNull( tracks );
        assertEquals( 2, tracks.size() );
       
        verify( db );
        verify( st );
        verify( rs );
       
    }

    public void testGetRecentlyPlayedTracksQuery() throws Exception {

        final Database db = new TestDatabase();
        final Homer h = new Homer();
       
        h.setDatabase( db );
        h.getRecentlyPlayedTracks( 10 );
       
    }
   
    public void testGetTopArtists() throws SQLException {
       
        final long total = 10;
       
        final ResultSet rs = createNiceMock( ResultSet.class );
        expect( rs.next() ).andReturn( true );
        expect( rs.next() ).andReturn( true );
        expect( rs.next() ).andReturn( false );
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, (int) total );
        expect( st.executeQuery() ).andReturn( rs ).times( 1 );
        st.close();
        replay( st );
       
        final Database db = createMock( Database.class );
        expect( db.prepare((String)anyObject()) ).andReturn( st ).times( 1 );
        replay( db );
       
        final Homer h = new Homer();
        h.setDatabase( db );
       
        final List<Artist> artists = h.getTopArtists( 10 );
       
        assertNotNull( artists );
        assertEquals( 2, artists.size() );
       
        verify( db );
        verify( st );
        verify( rs );
       
    }
   
    public void testGetTopArtistsQuery() throws Exception {

        final Database db = new TestDatabase();
        final Homer h = new Homer();
       
        h.setDatabase( db );
        h.getTopArtists( 10 );
       
    }
   
    public void testShowMain() throws Exception {

        final Database db = new TestDatabase();
        final List<Track> recentlyPlayedTracks = new ArrayList<Track>();
        final List<Artist> topArtists = new ArrayList<Artist>();
        final List<Album> recentlyPlayedAlbums = new ArrayList<Album>();
        final TestResponse res = new TestResponse( db );
        final Homer h = new Homer();

        final Artist artist = TestUtils.getArtist();
        final Album album = TestUtils.getAlbum(artist);
        final Genre genre = TestUtils.getGenre();
        final Track track = TestUtils.getTrack(artist, album, genre);
       
        recentlyPlayedTracks.add( track );
        recentlyPlayedAlbums.add( album );
        topArtists.add( artist );
       
        h.setResponse( res );
        h.showMain( recentlyPlayedTracks, topArtists, recentlyPlayedAlbums );
       
        final String data = res.getOutput();
       
        assertTrue( data.contains(track.getName()) );
        assertTrue( data.contains(artist.getName()) );
       
    }
   
}
TOP

Related Classes of com.pugh.sockso.web.action.HomerTest

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.