Package com.pugh.sockso.web.action.api

Source Code of com.pugh.sockso.web.action.api.ArtistActionTest

package com.pugh.sockso.web.action.api;

import com.pugh.sockso.tests.SocksoTestCase;
import com.pugh.sockso.tests.TestDatabase;
import com.pugh.sockso.tests.TestResponse;
import com.pugh.sockso.web.BadRequestException;

import java.io.IOException;

import java.sql.SQLException;

public class ArtistActionTest extends SocksoTestCase {

    private ArtistAction action;
   
    private TestResponse res;
   
    @Override
    protected void setUp() throws Exception {
        res = new TestResponse();
        TestDatabase db = new TestDatabase();
        db.fixture( "artistsAlbumsAndTracks" );
        action = new ArtistAction();
        action.setDatabase( db );
        action.setResponse( res );
    }
   
    public void testActionHandlesUrlForArtistInfo() {
        assertTrue( action.canHandle(getRequest( "/api/artists/123" )) );
        assertTrue( action.canHandle(getRequest( "/api/artists/456" )) );
        assertTrue( action.canHandle(getRequest( "/api/artists/123?foo=bar" )) );
    }
   
    public void testActionDoesntHandleUrlsNotForArtistInfo() {
        assertFalse( action.canHandle(getRequest( "/api/artists/123/tracks" )) );
        assertFalse( action.canHandle(getRequest( "/api/artists" )) );
        assertFalse( action.canHandle(getRequest( "/api/albums/456" )) );
    }
   
    public void testArtistInfoShowsWhenArtistRequested() throws Exception {
        action.setRequest(getRequest( "/api/artists/1" ));
        action.handleRequest();
        assertContains( res.getOutput(), "1");
        assertContains( res.getOutput(), "A Artist" );
    }
   
    public void testExceptionThrownWhenInvalidArtistRequested() {
        boolean gotException = false;
        action.setRequest(getRequest( "/api/artists/999" ));
        try { action.handleRequest(); }
        catch ( IOException e ) {}
        catch ( SQLException e ) {}
        catch ( BadRequestException e ) { gotException=true; }
        if ( !gotException ) {
            fail( "Expected BadRequestException when invalid artist ID specified" );
        }
    }
   
}
TOP

Related Classes of com.pugh.sockso.web.action.api.ArtistActionTest

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.