package com.github.hakko.musiccabinet.ws.lastfm;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import java.util.List;
import org.apache.http.NameValuePair;
import org.junit.Test;
import org.mockito.Mockito;
import com.github.hakko.musiccabinet.domain.model.library.WebserviceInvocation;
import com.github.hakko.musiccabinet.domain.model.library.WebserviceInvocation.Calltype;
import com.github.hakko.musiccabinet.domain.model.music.Artist;
import com.github.hakko.musiccabinet.domain.model.music.Track;
import com.github.hakko.musiccabinet.exception.ApplicationException;
import com.github.hakko.musiccabinet.service.lastfm.WebserviceHistoryService;
public class TrackSimilarityClientTest extends AbstractWSImplementationTest {
@Test
public void validateParameters() throws ApplicationException {
final String method = TrackSimilarityClient.METHOD;
final String artistName = "madonna";
final String trackName = "ray of light";
new TrackSimilarityClient() {
@Override
protected WSResponse executeWSRequest(WebserviceInvocation wi,
List<NameValuePair> params) throws ApplicationException {
assertEquals(Calltype.TRACK_GET_SIMILAR, wi.getCallType());
assertTrue(trackName.equals(wi.getTrack().getName()));
assertTrue(artistName.equals(wi.getTrack().getArtist().getName()));
assertHasParameter(params, PARAM_METHOD, method);
assertHasParameter(params, PARAM_ARTIST, artistName);
assertHasParameter(params, PARAM_TRACK, trackName);
return null;
}
@Override
protected WebserviceHistoryService getHistoryService() {
return Mockito.mock(WebserviceHistoryService.class);
}
}.getTrackSimilarity(new Track(new Artist(artistName), trackName));
}
}