Package com.pugh.sockso.web.action

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

package com.pugh.sockso.web.action;

import com.pugh.sockso.music.CoverArt;
import com.pugh.sockso.tests.SocksoTestCase;
import com.pugh.sockso.db.Database;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;

import static org.easymock.EasyMock.*;

public class AbstractCoverSearchTest extends SocksoTestCase {

    /**
     *  empty implementation for testing
     *
     */

    class MyCoverSearch extends AbstractCoverSearch {
        public MyCoverSearch( final Database db ) {
            super( db );
        }
        public CoverArt getCover( final String name ) { return null; }
    }

    public void testGetCustomTypeFromAbbrev() {

        final MyCoverSearch s = new MyCoverSearch( null );

        assertEquals( "album", s.getCustomTypeFromAbrev("al") );
        assertEquals( "artist", s.getCustomTypeFromAbrev("ar") );
        assertEquals( "playlist", s.getCustomTypeFromAbrev("pl") );
        assertEquals( "track", s.getCustomTypeFromAbrev("tr") );
        assertNull( s.getCustomTypeFromAbrev("BAD") );

    }

    public void testGetMusicItemName() throws SQLException {

        final ResultSet rs = createMock( ResultSet.class );
        expect( rs.next() ).andReturn( true );
        expect( rs.getString("name") ).andReturn( "foo" );
        rs.close();
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, 123 );
        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 MyCoverSearch s = new MyCoverSearch( db );
        final String name = s.getMusicItemName( "ar123" );
       
        assertEquals( name, "foo" );
       
        verify( db );
        verify( st );
        verify( rs );
       
    }

    public void testGetMusicItemNameNoMatch() throws SQLException {

        final ResultSet rs = createMock( ResultSet.class );
        expect( rs.next() ).andReturn( false );
        rs.close();
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, 345 );
        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 MyCoverSearch s = new MyCoverSearch( db );
        final String name = s.getMusicItemName( "tr345" );
       
        assertNull( name );
       
        verify( db );
        verify( st );
        verify( rs );
       
    }

    public void testGetMusicItemNameBadArgument() throws SQLException {

        final Database db = createMock( Database.class );
        replay( db );
       
        final MyCoverSearch s = new MyCoverSearch( db );
        boolean gotException = false;
       
        try {
            s.getMusicItemName( "BAD NAME" );
        }
        catch ( final NumberFormatException e ) {
            gotException = true;
        }
       
        assertTrue( gotException );
       
        verify( db );
       
    }

    public void testGetArtistName() throws SQLException {
       
        final int albumId = 123;
       
        final ResultSet rs = createMock( ResultSet.class );
        expect( rs.next() ).andReturn( true );
        expect( rs.getString("name") ).andReturn( "foo" );
        rs.close();
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, albumId );
        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 MyCoverSearch s = new MyCoverSearch( db );
        final String name = s.getArtistName( albumId );
       
        assertEquals( "foo", name );
       
        verify( db );
        verify( st );
        verify( rs );

    }
    public void testGetArtistNameNoMatch() throws SQLException {
       
        final int albumId = 123;
       
        final ResultSet rs = createMock( ResultSet.class );
        expect( rs.next() ).andReturn( false );
        rs.close();
        replay( rs );
       
        final PreparedStatement st = createMock( PreparedStatement.class );
        st.setInt( 1, albumId );
        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 MyCoverSearch s = new MyCoverSearch( db );
        final String name = s.getArtistName( albumId );
       
        assertEquals( "", name );
       
        verify( db );
        verify( st );
        verify( rs );

    }
   
    public void testRemoveUseLessWords() {
       
        final MyCoverSearch s = new MyCoverSearch( null );
        final String keywords = "name CD1 disc 2 CD 2";
       
        assertEquals( "name", s.removeUselessWords(keywords) );
       
        // check no sode effects
        assertEquals( "name CD1 disc 2 CD 2", keywords );
       
    }
   
}
TOP

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

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.