1 package com.xtremelabs.robolectric.shadows; 2 3 import android.widget.ProgressBar; 4 import com.xtremelabs.robolectric.WithTestDefaultsRunner; 5 import org.junit.Before; 6 import org.junit.Test; 7 import org.junit.runner.RunWith; 8 9 import static org.hamcrest.CoreMatchers.equalTo; 10 import static org.junit.Assert.assertEquals; 11 import static org.junit.Assert.assertFalse; 12 import static org.junit.Assert.assertThat; 13 import static org.junit.Assert.assertTrue; 14 15 @RunWith(WithTestDefaultsRunner.class) 16 public class ProgressBarTest { 17 18 private int[] testValues = {0, 1, 2, 100}; 19 private ProgressBar progressBar; 20 21 @Before setUp()22 public void setUp() { 23 progressBar = new ProgressBar(null); 24 } 25 26 @Test shouldInitMaxTo100()27 public void shouldInitMaxTo100() { 28 assertThat(progressBar.getMax(), equalTo(100)); 29 } 30 31 @Test testMax()32 public void testMax() { 33 for (int max : testValues) { 34 progressBar.setMax(max); 35 assertThat(progressBar.getMax(), equalTo(max)); 36 } 37 } 38 39 @Test testProgress()40 public void testProgress() { 41 for (int progress : testValues) { 42 progressBar.setProgress(progress); 43 assertThat(progressBar.getProgress(), equalTo(progress)); 44 } 45 } 46 47 @Test testSecondaryProgress()48 public void testSecondaryProgress() { 49 for (int progress : testValues) { 50 progressBar.setSecondaryProgress(progress); 51 assertThat(progressBar.getSecondaryProgress(), equalTo(progress)); 52 } 53 } 54 55 @Test testIsDeterminate()56 public void testIsDeterminate() throws Exception { 57 assertFalse(progressBar.isIndeterminate()); 58 progressBar.setIndeterminate(true); 59 assertTrue(progressBar.isIndeterminate()); 60 } 61 62 @Test shouldReturnZeroAsProgressWhenIndeterminate()63 public void shouldReturnZeroAsProgressWhenIndeterminate() throws Exception { 64 progressBar.setProgress(10); 65 progressBar.setSecondaryProgress(20); 66 progressBar.setIndeterminate(true); 67 assertEquals(0, progressBar.getProgress()); 68 assertEquals(0, progressBar.getSecondaryProgress()); 69 progressBar.setIndeterminate(false); 70 71 assertEquals(10, progressBar.getProgress()); 72 assertEquals(20, progressBar.getSecondaryProgress()); 73 } 74 75 @Test shouldNotSetProgressWhenIndeterminate()76 public void shouldNotSetProgressWhenIndeterminate() throws Exception { 77 progressBar.setIndeterminate(true); 78 progressBar.setProgress(10); 79 progressBar.setSecondaryProgress(20); 80 progressBar.setIndeterminate(false); 81 82 assertEquals(0, progressBar.getProgress()); 83 assertEquals(0, progressBar.getSecondaryProgress()); 84 } 85 86 @Test testIncrementProgressBy()87 public void testIncrementProgressBy() throws Exception { 88 assertEquals(0, progressBar.getProgress()); 89 progressBar.incrementProgressBy(1); 90 assertEquals(1, progressBar.getProgress()); 91 progressBar.incrementProgressBy(1); 92 assertEquals(2, progressBar.getProgress()); 93 94 assertEquals(0, progressBar.getSecondaryProgress()); 95 progressBar.incrementSecondaryProgressBy(1); 96 assertEquals(1, progressBar.getSecondaryProgress()); 97 progressBar.incrementSecondaryProgressBy(1); 98 assertEquals(2, progressBar.getSecondaryProgress()); 99 } 100 101 @Test shouldRespectMax()102 public void shouldRespectMax() throws Exception { 103 progressBar.setMax(20); 104 progressBar.setProgress(50); 105 assertEquals(20, progressBar.getProgress()); 106 } 107 } 108