use of com.github.hakko.musiccabinet.service.lastfm.WebserviceHistoryService in project musiccabinet by hakko.
the class TagUpdateServiceTest method updatesWithinThresholdsAreIgnored.
@Test
public void updatesWithinThresholdsAreIgnored() throws ApplicationException {
ArtistTopTagsDao artistTopTagsDao = mock(ArtistTopTagsDao.class);
tagUpdateService.setArtistTopTagsDao(artistTopTagsDao);
setClientResponse(responseOK);
TagUpdateClient tagUpdateClient = tagUpdateService.tagUpdateClient;
WebserviceHistoryService historyService = mock(WebserviceHistoryService.class);
tagUpdateService.setWebserviceHistoryService(historyService);
tagUpdateService.register(artist1Addition);
tagUpdateService.register(artist2Removal);
tagUpdateService.register(artist3Addition);
tagUpdateService.updateTags();
verify(tagUpdateClient, times(1)).updateTag(artist1Addition);
verify(tagUpdateClient, times(1)).updateTag(artist2Removal);
verify(tagUpdateClient, times(0)).updateTag(artist3Addition);
}
use of com.github.hakko.musiccabinet.service.lastfm.WebserviceHistoryService in project musiccabinet by hakko.
the class TagUpdateServiceTest method duplicateUpdatesAreRemoved.
@Test
public void duplicateUpdatesAreRemoved() throws ApplicationException {
tagUpdateService.failedUpdates.clear();
setClientResponse(responseFail);
ArtistTopTagsDao artistTopTagsDao = mock(ArtistTopTagsDao.class);
tagUpdateService.setArtistTopTagsDao(artistTopTagsDao);
WebserviceHistoryService historyService = mock(WebserviceHistoryService.class);
tagUpdateService.setWebserviceHistoryService(historyService);
tagUpdateService.register(artist1Addition);
tagUpdateService.register(artist1Addition);
tagUpdateService.register(artist1Addition);
tagUpdateService.updateTags();
// tag updates and web service blocking are instantaneous
verify(historyService, times(3)).blockWebserviceInvocation(artist1.getId(), ARTIST_GET_TOP_TAGS);
verify(artistTopTagsDao, times(3)).updateTopTag(artist1.getId(), artist1Addition.getTagName(), artist1Addition.getTagCount());
// dupes removed, one item updated and put on fail queue
assertEquals(1, tagUpdateService.failedUpdates.size());
}
use of com.github.hakko.musiccabinet.service.lastfm.WebserviceHistoryService in project musiccabinet by hakko.
the class GroupWeeklyArtistChartClientTest method validateParameters.
@Test
public void validateParameters() throws ApplicationException {
final String method = GroupWeeklyArtistChartClient.METHOD;
final String lastFmGroup = "Brainwashed";
new GroupWeeklyArtistChartClient() {
@Override
protected WSResponse executeWSRequest(WebserviceInvocation wi, List<NameValuePair> params) throws ApplicationException {
Assert.assertEquals(Calltype.GROUP_WEEKLY_ARTIST_CHART, wi.getCallType());
Assert.assertEquals(lastFmGroup, wi.getGroup().getName());
assertHasParameter(params, PARAM_METHOD, method);
assertHasParameter(params, PARAM_GROUP, lastFmGroup);
return null;
}
@Override
protected WebserviceHistoryService getHistoryService() {
return Mockito.mock(WebserviceHistoryService.class);
}
}.getWeeklyArtistChart(new LastFmGroup(lastFmGroup));
}
use of com.github.hakko.musiccabinet.service.lastfm.WebserviceHistoryService in project musiccabinet by hakko.
the class AbstractWSGetClientTest method getTestWSClient.
/*
* Help method to create a base TestWSClient.
*/
private TestWSGetClient getTestWSClient(boolean allowCalls) {
HttpClient httpClient = Mockito.mock(HttpClient.class);
ClientConnectionManager connectionManager = Mockito.mock(ClientConnectionManager.class);
when(httpClient.getConnectionManager()).thenReturn(connectionManager);
WebserviceHistoryService historyService = mock(WebserviceHistoryService.class);
when(historyService.isWebserviceInvocationAllowed(Mockito.any(WebserviceInvocation.class))).thenReturn(allowCalls);
WebserviceInvocation invocation = mock(WebserviceInvocation.class);
List<NameValuePair> params = new ArrayList<>();
TestWSGetClient testClient = new TestWSGetClient(invocation, params);
testClient.setWebserviceHistoryService(historyService);
testClient.setHttpClient(httpClient);
// create a throttling service that allows calls at any rate
ThrottleService throttleService = mock(ThrottleService.class);
testClient.setThrottleService(throttleService);
return testClient;
}
use of com.github.hakko.musiccabinet.service.lastfm.WebserviceHistoryService in project musiccabinet by hakko.
the class ArtistInfoClientTest method validateParameters.
@Test
public void validateParameters() throws ApplicationException {
final String method = ArtistInfoClient.METHOD;
final String artistName = "madonna";
final String lang = Locale.FRANCE.getLanguage();
new ArtistInfoClient() {
@Override
protected WSResponse executeWSRequest(WebserviceInvocation wi, List<NameValuePair> params) throws ApplicationException {
Assert.assertEquals(Calltype.ARTIST_GET_INFO, wi.getCallType());
Assert.assertTrue(artistName.equals(wi.getArtist().getName()));
assertHasParameter(params, PARAM_METHOD, method);
assertHasParameter(params, PARAM_ARTIST, artistName);
assertHasParameter(params, PARAM_LANG, lang);
return null;
}
@Override
protected WebserviceHistoryService getHistoryService() {
return Mockito.mock(WebserviceHistoryService.class);
}
}.getArtistInfo(new Artist(artistName), lang);
}
Aggregations