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