package net.rdrei.android.scdl2.test;
import android.app.Activity;
import com.google.inject.AbstractModule;
import net.rdrei.android.scdl2.api.MediaDownloadType;
import net.rdrei.android.scdl2.api.PendingDownload;
import net.rdrei.android.scdl2.api.service.PlaylistService;
import net.rdrei.android.scdl2.api.service.TrackService;
import net.rdrei.android.scdl2.ui.AbstractMediaStateLoaderTask;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
@RunWith(RobolectricTestRunner.class)
public class AbstractMediaStateLoaderTaskTest {
@Mock
TrackService mTrackService;
@Mock
PlaylistService mPlaylistService;
Activity mContext;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = Robolectric.buildActivity(Activity.class).create().get();
TestHelper.overridenInjector(this, new AbstractModule() {
@Override
protected void configure() {
bind(TrackService.class).toInstance(mTrackService);
bind(PlaylistService.class).toInstance(mPlaylistService);
}
});
}
@Test
public void testCallForTrack() throws Exception {
final PendingDownload pendingDownload = new PendingDownload("1234",
MediaDownloadType.TRACK);
final AbstractMediaStateLoaderTask task = new AbstractMediaStateLoaderTask(mContext,
pendingDownload);
task.call();
verify(mTrackService).getTrack("1234");
verifyZeroInteractions(mPlaylistService);
}
@Test
public void testCallForPlayList() throws Exception {
final PendingDownload pendingDownload = new PendingDownload("1234",
MediaDownloadType.PLAYLIST);
final AbstractMediaStateLoaderTask task = new AbstractMediaStateLoaderTask(mContext,
pendingDownload);
task.call();
verify(mPlaylistService).getPlaylist("1234");
verifyZeroInteractions(mTrackService);
}
}