package com.novoda.downloadmanager.lib; import android.app.DownloadManager; import org.junit.Test; import static org.fest.assertions.api.Assertions.assertThat; public class DownloadStatusTest { @Test public void whenVisibilityIsCompletedThenNotificationIsToBeDisplayed() { boolean toBeDisplayed = DownloadStatus.isNotificationToBeDisplayed(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); assertThat(toBeDisplayed).isTrue(); } @Test public void whenVisibilityIsOnlyCompletionThenNotificationIsToBeDisplayed() { boolean toBeDisplayed = DownloadStatus.isNotificationToBeDisplayed(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION); assertThat(toBeDisplayed).isTrue(); } @Test public void whenVisibilityIsHiddenThenNotificationIsNotBeDisplayed() { boolean toBeDisplayed = DownloadStatus.isNotificationToBeDisplayed(DownloadManager.Request.VISIBILITY_HIDDEN); assertThat(toBeDisplayed).isFalse(); } @Test public void whenStatusIs490ThenStatusIsCancelled() { boolean isCancelled = DownloadStatus.isCancelled(490); assertThat(isCancelled).isTrue(); } @Test public void whenStatusIs4xxThenStatusIsClientError() { for (int i = 400; i < 500; i++) { assertThat(DownloadStatus.isClientError(i)).isTrue(); } assertThat(DownloadStatus.isClientError(399)).isFalse(); assertThat(DownloadStatus.isClientError(500)).isFalse(); } @Test public void whenStatusIs4xxOr5xxxThenStatusIsError() { for (int i = 400; i < 600; i++) { assertThat(DownloadStatus.isError(i)).isTrue(); } assertThat(DownloadStatus.isError(399)).isFalse(); assertThat(DownloadStatus.isError(700)).isFalse(); } @Test public void whenStatusIs198ThenStatusIsInsufficientSpace() { boolean isInsufficientSpace = DownloadStatus.isCancelled(490); assertThat(isInsufficientSpace).isTrue(); } @Test public void whenStatusIs5xxThenStatusIsServerError() { for (int i = 500; i < 600; i++) { assertThat(DownloadStatus.isServerError(i)).isTrue(); } assertThat(DownloadStatus.isServerError(499)).isFalse(); assertThat(DownloadStatus.isServerError(600)).isFalse(); } @Test public void whenStatusIs1xxThenStatusIsInformational() { for (int i = 100; i < 200; i++) { assertThat(DownloadStatus.isInformational(i)).isTrue(); } assertThat(DownloadStatus.isInformational(99)).isFalse(); assertThat(DownloadStatus.isInformational(200)).isFalse(); } @Test public void whenStatusIs2xxThenStatusIsSuccess() { for (int i = 200; i < 300; i++) { assertThat(DownloadStatus.isSuccess(i)).isTrue(); } assertThat(DownloadStatus.isSuccess(199)).isFalse(); assertThat(DownloadStatus.isSuccess(300)).isFalse(); } @Test public void whenStatusIs2xxThenStatusIsCompleted() { for (int i = 200; i < 300; i++) { assertThat(DownloadStatus.isCompleted(i)).isTrue(); } assertThat(DownloadStatus.isSuccess(199)).isFalse(); assertThat(DownloadStatus.isSuccess(300)).isFalse(); } @Test public void whenStatusIs4xxAnd5xxButNot490ThenStatusIsCompleted() { for (int i = 400; i < 600; i++) { if (i == 490) { assertThat(DownloadStatus.isCompleted(i)).isFalse(); } else { assertThat(DownloadStatus.isCompleted(i)).isTrue(); } } assertThat(DownloadStatus.isSuccess(399)).isFalse(); assertThat(DownloadStatus.isSuccess(600)).isFalse(); } @Test public void whenStatusIs189ThenStatusIsSubmitted() { boolean isStatusSubmitted = DownloadStatus.isSubmitted(189); assertThat(isStatusSubmitted).isTrue(); } @Test public void whenStatusIs192ThenStatusIsRunning() { boolean isStatusRunning = DownloadStatus.isRunning(192); assertThat(isStatusRunning).isTrue(); } @Test public void whenStatusIs188ThenStatusIsDeleting() { boolean isStatusDeleting = DownloadStatus.isDeleting(188); assertThat(isStatusDeleting).isTrue(); } }