package com.novoda.downloadmanager.lib;
import com.novoda.downloadmanager.Download;
import org.junit.Test;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
public class DownloadReadyCheckerTest {
private static final DownloadClientReadyChecker IS_READY = new DownloadClientReadyChecker() {
@Override
public boolean isAllowedToDownload(Download download) {
return true;
}
};
private static final DownloadClientReadyChecker IS_NOT_READY = new DownloadClientReadyChecker() {
@Override
public boolean isAllowedToDownload(Download download) {
return false;
}
};
@Test
public void givenClientIsReadyToDownloadThenStartDownload() {
DownloadReadyChecker downloadReadyChecker = new DownloadReadyChecker(
null,
null,
IS_READY,
mock(PublicFacingDownloadMarshaller.class)
);
boolean isReady = downloadReadyChecker.clientAllowsToDownload(mock(DownloadBatch.class));
assertThat(isReady).isTrue();
}
@Test
public void givenClientIsNotReadyToDownloadThenDownloadDoesNotStart() {
DownloadReadyChecker downloadReadyChecker = new DownloadReadyChecker(
null,
null,
IS_NOT_READY,
mock(PublicFacingDownloadMarshaller.class)
);
boolean isReady = downloadReadyChecker.clientAllowsToDownload(mock(DownloadBatch.class));
assertThat(isReady).isFalse();
}
}