Home | History | Annotate | Download | only in shadows
      1 package org.robolectric.shadows;
      2 
      3 import static org.assertj.core.api.Assertions.assertThat;
      4 
      5 import android.widget.SeekBar;
      6 import java.util.ArrayList;
      7 import java.util.List;
      8 import org.junit.Before;
      9 import org.junit.Test;
     10 import org.junit.runner.RunWith;
     11 import org.robolectric.RobolectricTestRunner;
     12 import org.robolectric.RuntimeEnvironment;
     13 import org.robolectric.Shadows;
     14 
     15 @RunWith(RobolectricTestRunner.class)
     16 public class ShadowSeekBarTest {
     17 
     18   private SeekBar seekBar;
     19   private ShadowSeekBar shadow;
     20   private SeekBar.OnSeekBarChangeListener listener;
     21   private List<String> transcript;
     22 
     23   @Before
     24   public void setup() {
     25     seekBar = new SeekBar(RuntimeEnvironment.application);
     26     shadow = Shadows.shadowOf(seekBar);
     27     listener = new TestSeekBarChangedListener();
     28     transcript = new ArrayList<>();
     29     seekBar.setOnSeekBarChangeListener(listener);
     30   }
     31 
     32   @Test
     33   public void testOnSeekBarChangedListener() {
     34     assertThat(shadow.getOnSeekBarChangeListener()).isSameAs(listener);
     35     seekBar.setOnSeekBarChangeListener(null);
     36     assertThat(shadow.getOnSeekBarChangeListener()).isNull();
     37   }
     38 
     39   @Test
     40   public void testOnChangeNotification() {
     41     seekBar.setProgress(5);
     42     assertThat(transcript).containsExactly("onProgressChanged() - 5");
     43   }
     44 
     45   private class TestSeekBarChangedListener implements SeekBar.OnSeekBarChangeListener {
     46 
     47     @Override
     48     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
     49       transcript.add("onProgressChanged() - " + progress);
     50     }
     51 
     52     @Override
     53     public void onStartTrackingTouch(SeekBar seekBar) {
     54     }
     55 
     56     @Override
     57     public void onStopTrackingTouch(SeekBar seekBar) {
     58     }
     59   }
     60 }
     61