package org.robolectric.shadows; import android.app.ProgressDialog; import android.view.View; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.Shadows; import org.robolectric.TestRunners; import static org.assertj.core.api.Assertions.assertThat; import static org.robolectric.Shadows.shadowOf; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowProgressDialogTest { private ProgressDialog dialog; private ShadowProgressDialog shadow; @Before public void setUp() { dialog = new ProgressDialog(RuntimeEnvironment.application); shadow = Shadows.shadowOf(dialog); } @Test public void shouldExtendAlertDialog() { assertThat(shadow).isInstanceOf(ShadowAlertDialog.class); } @Test public void shouldPutTheMessageIntoTheView() { String message = "This is only a test"; shadow.callOnCreate(null); View dialogView = shadow.getView(); assertThat(shadowOf(dialogView).innerText()).doesNotContain(message); dialog.setMessage(message); assertThat(shadowOf(shadow.getView()).innerText()).contains(message); } @Test public void shouldSetIndeterminate() { assertThat(dialog.isIndeterminate()).isFalse(); dialog.setIndeterminate(true); assertThat(dialog.isIndeterminate()).isTrue(); dialog.setIndeterminate(false); assertThat(dialog.isIndeterminate()).isFalse(); } @Test public void shouldSetMax() { assertThat(dialog.getMax()).isEqualTo(0); dialog.setMax(41); assertThat(dialog.getMax()).isEqualTo(41); } @Test public void shouldSetProgress() { assertThat(dialog.getProgress()).isEqualTo(0); dialog.setProgress(42); assertThat(dialog.getProgress()).isEqualTo(42); } @Test public void shouldGetProgressStyle() { assertThat(shadow.getProgressStyle()).isEqualTo(ProgressDialog.STYLE_SPINNER); dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); assertThat(shadow.getProgressStyle()).isEqualTo(ProgressDialog.STYLE_HORIZONTAL); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); assertThat(shadow.getProgressStyle()).isEqualTo(ProgressDialog.STYLE_SPINNER); } @Test public void horizontalStyle_shouldGetMessage() { String message = "This is only a test"; shadow.callOnCreate(null); dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); dialog.setMessage(message); assertThat(shadow.getMessage()).contains(message); } @Test public void spinnerStyle_shouldGetMessage() { String message = "This is only a test"; shadow.callOnCreate(null); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setMessage(message); assertThat(shadow.getMessage()).contains(message); } }